我一直在尝试使用python-网络抓取,特别是项目lucky.py(该项目使用命令行打开多个Google搜索结果)来遵循《自动化无聊的工作》 chapter 11
到目前为止,它仅在打开单个选项卡时有效,但是由于需要linkElems(仅返回一个空列表),因此无法打开多个选项卡,并且我不知道为什么这样做,所以任何帮助将不胜感激
我已经尝试过使用测试搜索,并且一直在尝试在线查找此问题的解决方案,但是在打开多个标签的程序中没有成功
import sys
import webbrowser
import bs4
testsearch = 'test'
print('Googling.....') # display when downloading google page
# res = requests.get('http://google.com/search?q={0}' + ' '.join(sys.argv[1:]))
# test search
res = requests.get('https://www.google.com/search?q='+testsearch)
print(res.raise_for_status()) # returns None
res.raise_for_status()
# Retrieve top search result links
soup = bs4.BeautifulSoup(res.text, 'html.parser')
# print(res.text)
# this part works
# webbrowser.open('https://www.google.com/search?q={0}'.format(testsearch))
# Open a browser tab for each result
linkElems = soup.select('.r a')
print(linkElems) # returns empty list right now
numOpen = min(5, len(linkElems))
for i in range(numOpen):
webbrowser.open('https://www.google.com' + linkElems[i].get('href'))
在命令行上使用的预期结果,例如lucky.py蛋糕袜子猫应该是浏览器选项卡,并带有打开的蛋糕,袜子,猫的搜索