You need to enable JavaScript to run this app. Python使用XPATH抓取anybusiness.com.au列表数据返回空如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python使用XPATH抓取anybusiness.com.au列表数据返回空如何解决

问题排查与解决方案

失效核心原因

  • 缺失请求头伪装:目标站点会校验请求的User-Agent字段,requests库默认发送的UA标识为python-requests/版本号,会被站点直接识别为爬虫请求,返回的内容并非正常的搜索结果页,因此xpath匹配不到对应内容。
  • XPath路径稳定性差:你使用的是从html根节点开始的绝对路径,页面结构稍有变动就会导致匹配失效,更推荐使用带类名、属性特征的相对路径。

修正后可运行代码

import requests
from lxml import html

start_url = "https://www.anybusiness.com.au/search?page=1&sort=date-new-old"
# 添加请求头伪装成普通浏览器访问
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"
}
res = requests.get(start_url, headers=headers)
tree = html.fromstring(res.content) 

# 改用带业务属性特征的相对xpath,抗页面结构变动能力更强
title_xpath = "//div[contains(@class,'businessListingCard')]//h2/text()"
title_value= tree.xpath(title_xpath)

print(title_value)

后续注意事项

  • 若后续抓取出现空结果,可先打印res.status_code和res.text确认响应状态,若存在前端JS动态渲染数据的情况,需要改用selenium、playwright等动态渲染工具抓取,或者直接调用站点的异步数据接口。
  • 频繁请求可能会触发站点的IP限流规则,可适当添加请求间隔时间,避免被限制访问。

内容的提问来源于stack exchange,提问作者James Dalton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 17:03:00