【发布时间】:2020-03-25 20:17:51
【问题描述】:
我正在尝试使用请求和 BeautifulSoup 模块在 Python 中编写脚本,这些模块将接受域名作为输入并打印出结果数量(例如“大约 292 个结果”)。 这是我的代码的一部分:
def get_pages(domain):
param = {'q' : "site:%s" %(domain)}
url = "https://www.google.com/search"
r = requests.get(url, params = param)
h = BeautifulSoup(r.content, 'html.parser')
print(h.prettify())
问题是输出的 html 代码不包含我需要的所有信息。但是,当我在浏览器中键入完全相同的 url 时,浏览器页面就会有它。 requests.get() 函数没有返回网页实际包含的所有信息的原因是什么?有没有办法解决这个问题?有没有其他方法可以获取 Google 显示的结果页面数量?附言我为我不完美的英语道歉,因为它不是我的母语。
【问题讨论】:
-
实际网页在浏览器中运行 javascript 并显示结果 - 它不会包含在网站的简单 html 抓取中。使用 selenium 并驱动 Chrome 浏览器访问该页面可以是访问此信息的一种方法。
-
JavaScript。可能
-
您可能应该使用官方搜索 API 来搜索此类内容。
-
@JohnnyWezel 提到的官方搜索 API:developers.google.com/custom-search/v1/overview
标签: python html parsing beautifulsoup python-requests