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

Scrapy爬取LeadHome网站仅爬取无数据返回问题求助

排查Scrapy爬虫无条目返回的问题

我来帮你拆解下这个问题——这种在Scrapy Shell里能正常拿到数据,但正式爬虫跑起来却没有任何条目返回的情况,通常是由以下几个常见原因导致的:

  • 请求头差异触发反爬
    Scrapy Shell默认的请求头和爬虫默认的请求头可能存在细微差异,部分网站会通过校验User-Agent等字段来拦截爬虫请求。你可以试试在项目的settings.py里添加浏览器风格的请求头:

    DEFAULT_REQUEST_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': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'en-US,en;q=0.5',
    }
    

    加完之后再运行爬虫,看看是否能拿到数据。

  • 动态类名导致选择器失效
    你用的CSS选择器div.search__PropertyCardWrapper-sc-1j5dndx-0.bsqBpI里包含了类似sc-1j5dndx-0、bsqBpI这种动态生成的哈希类名,这类类名是React、Vue等前端框架自动生成的,很可能会随着网站更新而变化。你在Shell测试时类名是有效的,但爬虫运行时可能已经被替换了。
    解决办法是换用更稳定的选择器,比如基于页面的固定属性(比如data-testid)或者结构特征:

    # 示例:假设卡片有固定的data-testid属性
    for prop in response.css('div[data-testid="property-card"]'):
        link = 'https://www.leadhome.co.za' + prop.css('a::attr(href)').get()
        # 后续逻辑...
    

    或者用XPath保留不变的类名前缀,去掉动态哈希部分:

    for prop in response.xpath('//div[contains(@class, "search__PropertyCardWrapper")]'):
        # 后续逻辑...
    
  • 分页逻辑存在漏洞
    你获取下一页页码的XPath可能不符合页面实际结构,导致无法正确触发分页爬取,或者拼接的URL格式有误。建议直接抓取下一页的完整链接,而不是手动拼接:

    # 示例:直接定位下一页按钮的href属性
    next_page_link = response.xpath('//a[contains(text(), "Next")]/@href').get()
    if next_page_link:
        # 用response.follow自动处理域名拼接
        yield response.follow(next_page_link, callback=self.parse)
    

    另外,你拼接URL时用了&,虽然Scrapy的urljoin会自动转义,但最好直接写&page=更稳妥。

  • 快速调试技巧
    为了精准定位问题,你可以在parse方法里加一些调试代码:

    1. 打印响应状态码,确认请求是否成功:print(f"Response status: {response.status}")
    2. 打印匹配到的卡片数量:print(f"Found {len(response.css('div.search__PropertyCardWrapper-sc-1j5dndx-0.bsqBpI'))} properties")
    3. 保存响应内容到本地文件,对比Shell里的页面:
      with open('crawled_page.html', 'wb') as f:
          f.write(response.body)
      
      打开这个HTML文件,看看是否包含你要找的房产卡片,就能快速判断是请求问题还是选择器问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:27:55