我需要废弃“People also ask box”:问题和答案。
我在谷歌搜索,然后用beautifulsoup废弃它。
import requests
from bs4 import BeautifulSoup
import html2text
import urllib.request
link = "https://www.google.com/search?client=firefox-b-d&source=hp&ei=v0mUXPu2ApTljwS6iLnABA&ei=lAyVXMPFCsaUsgXqmZT4DQ&q=what+is+java"
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
page = requests.get(link ,headers = headers)
soup = BeautifulSoup(page.content, 'html.parser')
#For answers :
mydivs = soup.find_all('div', class_="ILfuVd NA6bn")
结果是一个空列表。我检查了html文件,答案实际上是在该类下
当您在搜索框中输入文字时,Google的首页会更新,因此您在向搜索页面发出简单请求时将无法获得结果。
您可以在浏览器中访问https://google.com,打开“开发工具”面板(通常为F12)并观看“网络”选项卡以查看对自动完成API的基础请求。
看起来端点是https://www.google.com/complete/search?q=yourQueryHere&client=psy-ab,它比HTML页面更容易查询:
query = "what is java"
res = requests.get("https://google.com/complete/search?client=psy-ab&q=" + query)
print(res)
此外,谷歌可能不希望人们废弃这个,所以如果你做太多请求,你可能会达到限速。