You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zillow爬虫出现AttributeError: 'NoneType'无group属性问题求助

解决Zillow爬取时AttributeError: 'NoneType' object has no attribute 'group'的问题

错误根源

re.search返回了None,说明你写的正则表达式在请求回来的页面源码里找不到匹配内容。大概率是Zillow页面结构更新了,或者请求没模拟好真实浏览器,服务器返回的不是正常房源页面。

修复方法

1. 补全请求头,规避反爬

Zillow反爬严格,必须用真实浏览器的请求头伪装自己。至少要添加User-Agent,示例代码:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
    'Accept-Language': 'en-US,en;q=0.9'
}
r1 = requests.get(你的Zillow目标链接, headers=headers)

2. 修正正则表达式适配新页面结构

先打印r1.text查看实际页面源码里queryState的包裹格式。现在Zillow的JSON数据可能不再用"转义,而是直接用双引号,注释格式也可能发生了变化。试试这个正则:

match = re.search(r'<!--({"queryState".*?})-->', r1.text, re.DOTALL)

添加re.DOTALL是让.能匹配换行符,因为JSON内容大概率会跨多行。

3. 增加判断逻辑避免程序崩溃

不管匹配成功与否,先检查match是否为None,再进行后续处理:

match = re.search(r'<!--({"queryState".*?})-->', r1.text, re.DOTALL)
if match:
    data1 = json.loads(match.group(1))
else:
    print("找不到目标数据,页面开头片段:", r1.text[:1000])
    # 或者直接抛出明确错误终止程序
    raise ValueError("提取queryState数据失败")

4. 长期稳定方案:使用Zillow官方API

如果需要长期爬取Zillow数据,别依赖网页解析了,直接使用Zillow官方API,既稳定又不会触发反爬机制。

内容的提问来源于stack exchange,提问作者Haseeb Sultan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:48:20