从Google抓取地址的Python3和BeautifulSoup返回“ []”而不是地址

这是我的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只是Google的搜索结果。因此,对于“五叉处的十字路口”,google在右侧显示地址和电话信息。我只想抓取我已复制到其CSS路径中的地址soup.select。


但是,当我运行此脚本时,所有显示的内容都是“ []” ...而不是地址。我在这里想念什么?Google可以防止这种刮擦吗?谢谢你的帮助!


HUWWW
浏览 150回答 2
2回答

幕布斯6054654

您应该检查res.text变量以获取网站的html响应。您通常应使用这种方法来调试BeautifulSoup刮板,因为由于许多不同的原因(例如javascript支持或验证码检查),结果可能与预期的刮板不同另外,据我所知,谷歌有一个验证码检查来防止机器人(并让人们使用他们的付费api)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python