【发布时间】:2020-06-08 13:19:04
【问题描述】:
这是一个自定义代码,如自动化无聊的东西网页抓取第 11 章。但我似乎无法让它工作,所以我稍微改变了它。但我仍然会得到一个空列表作为回报。
我在 cmd 中运行这个脚本,例如脚本的标题是 allsearch.py ,它将是 allsearch.py 你想在 cmd 中搜索的东西。
import requests, sys, webbrowser, bs4
print('Searching...') # display text while downloading the search result page
res = requests.get('https://www.google.com/search?q=' + ' '.join(sys.argv[1:]))
try:
res.raise_for_status()
except Exception as Ex:
print(f'Error as occur: {Ex}')
if res.status_code == 200:
print('Success')
else:
print('Not Found')
# Retrieve top search result links.
soup = bs4.BeautifulSoup(res.text, 'html.parser')
# Open a browser tab for each result.
linkElems = soup.select('a href')
print(linkElems)
#Opening the searches
numOpen = min(5, len(linkElems))
for i in range(numOpen):
urlToOpen = 'https://www.google.com/search?q=' + linkElems[i].get('href')
print('Opening', urlToOpen)
webbrowser.open(urlToOpen)
我似乎无法在这里找到问题。
【问题讨论】:
-
你是如何执行这个脚本的?请将脚本调用添加到问题中。
-
你试过
print(res.text)吗?了解 Google,他们可能会检测到requests,并且不会向您显示任何您可以抓取的搜索结果。 -
是的,res.text 很好,因为它成功获取了数据。它只是我想在浏览器中自动打开我输入的选项卡。它的链接 Elems 在我打印出来时有一个空列表。
标签: python web-scraping beautifulsoup python-requests