Scrapy:ValueError('请求网址中缺少方案:%s'%self._url)

时间:2017-02-03 14:13:27

标签: python scrapy

我正在尝试从网页上抓取数据。该网页只是2500个URL的项目符号列表。 Scrapy获取并转到每个URL并获取一些数据......

这是我的代码

https//localhost/myproject/about

现在问题是上面的代码在2500篇文章中大约有215篇。它通过提供此错误来结束......

  

ValueError('请求网址中缺少方案:%s'%self._url)

我不知道造成这个错误的是什么......

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:6)

更新01/2019

Nowdays Scrapy的Response实例有非常方便的方法response.follow,它使用Link从给定的URL(由LinkExtractor生成的绝对或相对或甚至response.url对象)生成请求作为基础:

yield response.follow('some/url', callback=self.parse_some_url, headers=headers, ...)

文档:http://doc.scrapy.org/en/latest/topics/request-response.html#scrapy.http.Response.follow

下面的代码看起来像是问题:

 for url in hxs.xpath('//ul[@class="scrapy"]/li/a/@href').extract():
     yield Request(url, callback=self.parse)

如果任何网址不完全合格,例如看起来像href="/path/to/page"而不是href="http://example.com/path/to/page"你会得到错误。为确保您获得正确的请求,您可以使用urljoin

    yield Request(response.urljoin(url), callback=self.parse)

Scrapy方式是LinkExtractor使用git checkout HEAD@{1}