这是我的python3脚本:
import bs4, requests
def getCompAddress(https://www.google.com/search):
res = requests.get(https://www.google.com/search)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
elems = soup.select('#rhs_block.LrzXr')
print(elems)
…这个getCompAddress
的url只是google的搜索结果。所以对于Crossings at Five Forks,google在右边显示地址和电话信息。我只想抓取这个地址,我已经把它的CSS路径复制到soup.select
。在
但是当我运行这个脚本时,输出的只是“[]
”。。。而不是地址。我错过了什么?谷歌能阻止这种刮擦吗?谢谢你的帮助!在
你应该检查一下res.文本用于站点的html响应的变量。在
您通常应该使用这种方法来调试beauthulsoup scraper,因为许多不同的原因(例如javascript支持或captcha检查),结果可能与预期的不同
另外,据我所知,google有一个captcha检查来防止机器人(并让人们使用他们的付费api)
尝试使用VPN获取结果。我在github上遇到了这个项目,它允许您通过在Docker容器https://github.com/pry0cc/ProxyDock内部托管VPN来实现这一点
谷歌确实阻止了搜索结果的获取。他们阻止tor和公共可用的VPN代理。在
相关问题 更多 >
编程相关推荐