TypeError:在中放置自定义url时,无法连接“str”和“NoneType”对象恶心。请求()

2024-04-26 06:44:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个不能用于从下一页获取数据的url,所以创建了一个base_url = 'http://www.marinetraffic.com'变量并将其传递给了scrapy请求。port_homepage_url = base_url + port_homepage_url。当我看到这样的结果时,效果很好。yield {'a': port_homepage_url, 'b':item['port_name']} 我得到了我想要的结果。在

http://www.marinetraffic.com/en/ais/index/ships/range/port_id:20585/port_name:FUJAIRAH%20ANCH,FUJAIRAH锚点

但是如果把它放在垃圾请求yield scrapy.Request(port_homepage_url, callback=self.parse, meta={'item': item})我会得到错误

port_homepage_url = base_url +  port_homepage_url
TypeError: cannot concatenate 'str' and 'NoneType' objects

这是密码

^{pr2}$

Tags: namecomhttpurlbaseportwwwitem
1条回答
网友
1楼 · 发布于 2024-04-26 06:44:28

这个问题不会发生在初始的起始URL页面上,而是在后续请求被处理之后发生。以this page为例。第7个td元素中没有链接,因此,ports.xpath('td[7]/a/@href').extract_first()返回{},这会导致port_homepage_url = base_url + port_homepage_url行出现故障。在

如何解决这个问题取决于你打算在“端口”页面上做什么。据我所知,您并不是要用self.parse来实际处理“port”页请求,并且需要在内部使用不同逻辑的单独回调。在

相关问题 更多 >