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

Scrapy提取ul/li列表数据返回结果异常问题求助

问题原因

你的CSS选择器循环范围写错了:

  • response.css('ul.rp-1qtpzi4') 匹配的是包裹所有企业卡片的外层ul容器,整个页面只有1个该容器节点,所以循环只会执行1次,最终仅返回1条结果。
  • 直接把get()换成getall()是在整个页面全局范围提取所有字段值,没有绑定到单个企业条目上,自然会出现数据排列混乱、字段和企业无法匹配的问题。

核心修复逻辑:先定位到每一家企业对应的独立列表条目,在单个条目的作用域内分别提取地址、名称、链接三个字段,就能保证每个企业的字段一一对应。

修正后代码
import scrapy


class RynekMainSpider(scrapy.Spider):
    name = "RynekMain"
    start_urls = [
        'https://rynekpierwotny.pl/deweloperzy/?page=1',
    ]

    def parse(self, response):
        # 遍历ul下的每一个企业li条目
        for company in response.css('ul.rp-1qtpzi4 > li'):
            link = company.css('li.rp-np9kb1 a::attr(href)').get()
            # 如需输出示例里的纯域名格式,可在这里对link做字符串截取处理
            yield {
                'address': company.css('address.rp-o9b83y::text').get(),
                'name': company.css('h2.rp-69f2r4::text').get(),
                'link': link
            }
补充说明
  • 如果需要输出和示例完全一致的纯域名格式(不带http前缀、页面路径),拿到提取到的href值后,用字符串切片或者urllib.parse模块提取域名部分即可。
  • 后续如果要做多页爬取,只需要定位分页栏的下一页按钮地址,用response.follow()回调parse方法就能实现自动翻页。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:45:46