【问题标题】:Scrapy, extracting empty divsScrapy,提取空的div
【发布时间】:2025-11-26 07:00:02
【问题描述】:

我正在抓取一个包含数据点和标签的网站。而且它们都是 1:1 的比例。除了有时数据点可能是空的。当我在选择器上运行我的 extract_all() 时。我得到了我想要的所有数据点,但是它忽略了空字符串。我不希望它忽略这些,因为我得到标签然后是数据点,然后将它们 1 逐 1 同步在一起。当页面上的 div 为空时,问题就出现了,然后同步就丢失了。如果 div 的文本内容区域中没有任何内容,如何向 extract_all 添加选项以返回空字符串。或者当有数据点和标签时更好的抓取方式。我在这里添加了一张图片,当它是一个完美的记录时,然后当出现空 div 的问题时。

https://i.stack.imgur.com/3fcd7.png https://i.stack.imgur.com/pkFI9.png

【问题讨论】:

    标签: web-scraping scrapy scrapy-splash


    【解决方案1】:

    只是不要全部提取。使用单个数据点行:

    results = []
    
    for data_point_row in response.xpath('//your/xpath/to/select/a/div/or/table/row'):
        label = data_point_row.xpath('./select/a/label').get()
        value = data_point_row.xpath('./select/a/value').get()
        results.append({'label': label, 'value': value})
    

    【讨论】: