目标:我想验证,如果某个特定的Google搜索在右侧有建议的结果,并且 - 如果有这样的建议 - 请搜索公司类型/地址等信息等。
方法:我想使用带有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?
来删除它百万感谢和快乐的圣诞节,新年快乐!
答案 0 :(得分:2)
从Google地方信息服务中获取信息的最佳方式几乎总是the official API。也就是说,如果您在抓取时已经死定,那么HTTP请求返回的内容可能是供浏览器呈现的。 BeautifulSoup所做的并不等同于渲染收到的数据,所以很可能你只是得到了无用的空容器,这些容器后来被动态填充。
答案 1 :(得分:0)
我认为您的问题类似于google-search-with-python-reqeusts,也许您可以从中获得一些帮助〜
我同意LiterallyElvis,API比直接抓取它更好。
最后,如果你想使用这项工作的请求,我建议使用PhantomJS和selenium来模拟浏览器的工作,因为谷歌应该使用一些AJAX技术,在真正的浏览器和抓取工具之间制作不同的视图
在难以访问Google的国家/地区,我无法直接重复您的问题,以上是我能想到的,希望有所帮助