最初に検索タイトルを出力し、次にURLを出力する作業コードがありますが、Webサイトのタイトル間に多くのURLを出力します。しかし、これらをこのような形式で印刷し、同じURLをそれぞれ10回印刷しないようにする方法は次のとおりです。
1) Title url
2) Title url
and so on...
私のコード:
search = input("Search:")
page = requests.get(f"https://www.google.com/search?q=" + search)
soup = BeautifulSoup(page.content, "html5lib")
links = soup.findAll("a")
heading_object = soup.find_all('h3')
for info in heading_object:
x = info.getText()
print(x)
for link in links:
link_href = link.get('href')
if "url?q=" in link_href:
y = (link.get('href').split("?q=")[1].split("&sa=U")[0])
print(y)
タイトルとリンクを別々に取得する場合は、zip()
それらをペアでグループ化するために使用できます
for info, link in zip(heading_object, links):
info = info.getText()
link = link.get('href')
if "?q=" in link:
link = link.split("?q=")[1].split("&sa=U")[0]
print(info, link)
ただし、タイトルまたはリンクがページに存在しない場合は、間違ったペアが作成されるため、問題が発生する可能性があります。タイトルと次の要素のリンクをペアにします。タイトルとリンクの両方を保持する要素を検索し、すべての要素内で単一のタイトルと単一のリンクを検索してペアを作成する必要があります。タイトルまたはリンクがない場合は、デフォルト値を設定でき、間違ったペアが作成されることはありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加