我有一个有效的代码,该代码先打印搜索标题,然后打印URL,但它在网站标题之间打印很多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] 删除。
我来说两句