使用Python抓取Google - request.get的正确URL是什么?

时间:2015-12-27 10:45:29

标签: python url web-scraping python-requests search-engine

目标:我想验证,如果某个特定的Google搜索在右侧有建议的结果,并且 - 如果有这样的建议 - 请搜索公司类型/地址等信息等。

Google search result page with suggestion on right hand side

方法:我想使用带有Requests和BeautifulSoup4的Python scraper

import bs4
import requests

address='https://www.google.co.ve/?gws_rd=cr&ei=DgBqVpWJMoPA-gHy25fACg#q=caracas+arepa'
page = requests.get(address)
soup = bs4.BeautifulSoup(page.content,'html.parser')
print (soup.prettify())

问题:

请求的页面不包含搜索结果(我不确定Google页面上的某些变量是否设置为隐藏?),而不仅仅是Google页面的页眉和页脚

问题:

(1)获取所述信息的其他方法?有什么想法吗?

(2)一旦我用所描述的方法获得了结果,但各自的地址构造方式不同(我记得Google URL中有很多数字,但遗憾的是无法重现搜索地址)。因此:是否需要使用Google网址,以便可以通过requests.get?

来删除它

百万感谢和快乐的圣诞节,新年快乐!

2 个答案:

答案 0 :(得分:2)

从Google地方信息服务中获取信息的最佳方式几乎总是the official API。也就是说,如果您在抓取时已经死定,那么HTTP请求返回的内容可能是供浏览器呈现的。 BeautifulSoup所做的并不等同于渲染收到的数据,所以很可能你只是得到了无用的空容器,这些容器后来被动态填充。

答案 1 :(得分:0)

我认为您的问题类似于google-search-with-python-reqeusts,也许您可​​以从中获得一些帮助〜

我同意LiterallyElvis,API比直接抓取它更好。

最后,如果你想使用这项工作的请求,我建议使用PhantomJSselenium来模拟浏览器的工作,因为谷歌应该使用一些AJAX技术,在真正的浏览器和抓取工具之间制作不同的视图

在难以访问Google的国家/地区,我无法直接重复您的问题,以上是我能想到的,希望有所帮助

相关问题