【问题标题】:BeautifulSoup Returns vs View-Source from Chrome (Zillow)BeautifulSoup 返回与来自 Chrome (Zillow) 的 View-Source
【发布时间】:2025-12-11 21:20:02
【问题描述】:

我一直在尝试从 Zillow 抓取代码,但 beautifulsoup 提供的代码比来自 chrome 的查看源代码少得多。这是我的代码:

from bs4 import BeautifulSoup
import requests


from bs4 import BeautifulSoup
import requests
url='https://www.zillow.com/homedetails/49-Mountain-St-Hartford-CT-06106/58139903_zpid/'
html=requests.get(url)
bs = BeautifulSoup(html.text,"html.parser")
bs

结果表明正文中的内容很少。但是,如果您复制 url 并在 chrome 上查看源代码,您会看到很多。有人可以展示如何在 Zillow 上抓取正文中的全部内容吗?我在结果中看到“请验证您是人类继续”,如何处理?

【问题讨论】:

    标签: python html web-scraping beautifulsoup


    【解决方案1】:

    我认为您的基本问题是 Zillow 将在第一个页面请求后加载大量附加数据并使用该数据填充页面。 Zillow 也可能会采取措施阻止网络抓取(例如您看到的验证码)。

    如何做好这件事是一个巨大的话题,在 Stack Overflow 问题中不容易回答。您可以查看此页面以获取可能对您作为刮板有所帮助的资源列表 - https://github.com/niespodd/browser-fingerprinting

    您也可以在浏览器的开发者工具中打开您的网络标签(在 Chrome 上按 ctrl + F11)。在网络选项卡中,您可以看到传出请求和响应。您可以在响应中找到您想要的数据并研究请求以了解如何获取您正在寻找的数据。

    【讨论】:

      【解决方案2】:

      至于“验证你是人”,今天一个好的验证码不会在客户端解析答案,并消除修改请求标头的大部分工作。所以你可能想尝试使用 selenium 浏览器和 web-driver 而不是只使用 requests 库,这样你就可以手动验证验证码,然后让你的爬虫完成它的工作。

      【讨论】:

        最近更新 更多