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

Scrapy爬取transfermarkt.nl显示0页但元素存在的问题排查

解决Scrapy爬虫显示“Crawled 0 pages”的问题

你遇到的核心问题以及代码里的错误点如下:

1. 初始URL列表变量名拼写错误

你在爬虫类中定义的是starts_urls,但Scrapy框架要求的正确变量名是start_urls(少一个字母t)。Scrapy会自动读取start_urls中的URL生成初始请求,变量名错误会导致框架找不到要爬取的初始地址,直接出现“Crawled 0 pages”的结果。

2. 遍历元素的方法错误

你的parse方法中使用response.css('div.grid-view table.items tbody tr').get(),get()只会返回第一个匹配的<tr>元素,无法遍历所有球员行。应该改用getall()(或者直接遍历css选择器返回的可迭代对象)来获取所有符合条件的元素。

修正后的完整代码

import scrapy

class TransferMarketScraper(scrapy.Spider):
    name = 'transfermarket'
    start_urls = ['https://www.transfermarkt.nl/heracles-almelo/kader/verein/1304/saison_id/2022/plus/1']

    def parse(self, response):
        # 直接遍历css选择器返回的可迭代对象,等价于getall()
        for player in response.css('div.grid-view table.items tbody tr'):
            try:
                player_number = int(
                    player.css('div.rn_nummer::text').get().strip()
                )
            except ValueError:
                player_number = 'NA'
            except AttributeError:
                continue

            yield {'player_number': player_number}

注:你当前的Scrapy配置(USER_AGENT、HTTPERROR_ALLOWED_CODES等)是有效的,因为Scrapy Shell能正常获取响应,问题完全出在爬虫代码的拼写和逻辑错误上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:06:39