我正在尝试从网页上抓取数据。该网页只是2500个URL的项目符号列表。 Scrapy获取并转到每个URL并获取一些数据......
这是我的代码
https//localhost/myproject/about
现在问题是上面的代码在2500篇文章中大约有215篇。它通过提供此错误来结束......
ValueError('请求网址中缺少方案:%s'%self._url)
我不知道造成这个错误的是什么......
非常感谢任何帮助。
由于
答案 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}