You need to enable JavaScript to run this app. Scrapy爬取gol.gg站点返回None,css选择器失效如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Scrapy爬取gol.gg站点返回None,css选择器失效如何解决

问题根因

目标站点对请求头的User-Agent字段做了爬虫识别校验,Scrapy默认发送的User-Agent包含Scrapy标识,会被站点拦截,虽然响应状态码为200,但返回的是无表格数据的空白页面,因此CSS选择器无法匹配到对应元素。

解决方案
  • 替换默认的爬虫标识User-Agent
    两种修改方式二选一即可:
    1. 在Scrapy项目的settings.py配置文件中添加如下配置:
    USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
    
    1. 直接在爬虫代码中自定义请求头,修改后的完整爬虫代码如下:
    import scrapy
    
    class QuotesSpider(scrapy.Spider):
        name = "equipes"
    
        def start_requests(self):
            headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
                'Referer': 'https://gol.gg/'
            }
            url = 'https://gol.gg/teams/list/season-ALL/split-ALL/tournament-CBLOL%20Split%201%202020/'
            yield scrapy.Request(url, headers=headers, callback=self.parse)
    
        def parse(self, response):
            yield {'teste': response.css('tbody tr td.tablesaw-cell-persist').get()}
    
  • 验证响应内容正确性
    调试阶段可以先将响应源码保存到本地文件,确认返回内容与浏览器端一致后再调试选择器,代码示例:
    def parse(self, response):
        # 保存响应内容排查
        with open('gol_resp.html', 'w', encoding='utf-8') as f:
            f.write(response.text)
        yield {'teste': response.css('tbody tr td.tablesaw-cell-persist').get()}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 14:57:02