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

Scrapy Shell返回值正常但运行爬虫无输出问题求助

问题排查及解决方案

1. 核心问题:start_urls中的URL参数格式错误

你代码中填写的起始URL里,参数分隔符被错误添加了双引号,变成了"&",正确的分隔符应该是纯&。错误的URL会导致服务器无法正确识别请求参数,返回的页面不包含航班数据:

# 错误写法
start_urls = [
        'https://www.fly540.com/flights/nairobi-to-mombasa?isoneway=0"&"currency=KES"&"depairportcode=NBO"&"arrvairportcode=MBA"&"date_from=Fri%2C+10+Dec+2021"&"date_to=Fri%2C+17+Dec+2021"&"adult_no=1"&"children_no=0"&"infant_no=0"&"searchFlight="&"change_flight='
    ]
# 修正写法(直接复制你给出的目标数据源URL即可)
start_urls = [
        'https://www.fly540.com/flights/nairobi-to-mombasa?isoneway=0&currency=KES&depairportcode=NBO&arrvairportcode=MBA&date_from=Fri%2C+10+Dec+2021&date_to=Fri%2C+17+Dec+2021&adult_no=1&children_no=0&infant_no=0&searchFlight=&change_flight='
    ]

你在Scrapy Shell中测试时用的是正确的URL,所以能正常提取数据,爬虫运行时用了错误的URL,自然拿不到结果。

2. 潜在问题:代码缩进错误

Python是缩进敏感语言,你贴出的代码中,name属性、start_urls属性、parse方法都没有正确缩进在FlightsSpider类内部,会导致Scrapy无法正确识别爬虫的配置和解析逻辑:

# 修正后的完整代码
import scrapy

class FlightsSpider(scrapy.Spider):
    # 所有属性和方法都要缩进4个空格,处于class内部
    name = "flights"
    start_urls = [
        'https://www.fly540.com/flights/nairobi-to-mombasa?isoneway=0&currency=KES&depairportcode=NBO&arrvairportcode=MBA&date_from=Fri%2C+10+Dec+2021&date_to=Fri%2C+17+Dec+2021&adult_no=1&children_no=0&infant_no=0&searchFlight=&change_flight='
    ]

    def parse(self, response):
        # 可添加这行调试,确认返回状态码为200
        print("响应状态码:", response.status)
        for flight in response.css('div.fly5-flights.fly5-depart.th div.fly5-results table.table tr'):
            yield {
                'departureAirport': flight.css('td span.flfrom::text')[0].get()
            }

3. 其他可能:反爬拦截

如果修正上面两个问题后还是拿不到数据,大概率是Scrapy默认的User-Agent被网站拦截了,你可以在项目的settings.py中修改USER_AGENT配置为普通浏览器的UA:

# settings.py中添加配置
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:15:03