如何从谷歌搜索废除“人们也问'框?

问题描述 投票:0回答:1

我需要废弃“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文件,答案实际上是在该类下

python-3.x web-scraping beautifulsoup
1个回答
0
投票

当您在搜索框中输入文字时,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)

此外,谷歌可能不希望人们废弃这个,所以如果你做太多请求,你可能会达到限速。

© www.soinside.com 2019 - 2024. All rights reserved.