我尝试进行简单的 python 自动 google 搜索,但它不起作用我不确定为什么
i tried to make a simple python auto google search but its not working im not sure why
我不知道该尝试什么,因为我没有收到任何错误消息,当我 运行 它时它只是空白,我正在关注 YouTube 上的一个人和他的工作
import requests
import bs4
import sys
import webbrowser
search = 'savage'
res = requests.get(f'https://google.com/search?q={search}')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
linkelem = soup.select('.r a')
linkstoopen = min(5, len(linkelem))
for i in range(linkstoopen):
webbrowser.open('https://google.com', linkelem[i].get('href'))
它应该在 google
上打开 "savage" 的前 5 个结果
正如 furas 所建议的那样,我认为结果 html 代码可能在制作教程后发生了变化。
我通过对您的代码进行两处更改来实现它:
换行:
linkelem = soup.select('.r a')
到
linkelem = []
for div in soup.find_all("div", {"class": "jfp3ef"}):
for link in div.select("a"):
linkelem.append(link)
查看我们从 Google 获得的响应,我们发现结果链接在 div 中,名称为 class jfp3ef。
那么你应该在最后一个循环中将元素添加到google url
webbrowser.open('https://google.com' + linkelem[i].get('href'))
我不知道该尝试什么,因为我没有收到任何错误消息,当我 运行 它时它只是空白,我正在关注 YouTube 上的一个人和他的工作
import requests
import bs4
import sys
import webbrowser
search = 'savage'
res = requests.get(f'https://google.com/search?q={search}')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
linkelem = soup.select('.r a')
linkstoopen = min(5, len(linkelem))
for i in range(linkstoopen):
webbrowser.open('https://google.com', linkelem[i].get('href'))
它应该在 google
上打开 "savage" 的前 5 个结果正如 furas 所建议的那样,我认为结果 html 代码可能在制作教程后发生了变化。
我通过对您的代码进行两处更改来实现它:
换行:
linkelem = soup.select('.r a')
到
linkelem = []
for div in soup.find_all("div", {"class": "jfp3ef"}):
for link in div.select("a"):
linkelem.append(link)
查看我们从 Google 获得的响应,我们发现结果链接在 div 中,名称为 class jfp3ef。
那么你应该在最后一个循环中将元素添加到google url
webbrowser.open('https://google.com' + linkelem[i].get('href'))