ValueError: Missing scheme in request url: /favicon.ico
ValueError: Missing scheme in request url: /favicon.ico
我尝试使用以下代码在 cdiscount 上抓取卖家页面:
# -*- coding: utf-8 -*-
import scrapy
import re
import numbers
from cdiscount_test.items import CdiscountTestItem
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
f = open('item.csv', 'w').close()
class CdiscountsellersspiderSpider(scrapy.Spider):
name = 'CDiscountSellersSpider'
allowed_domains = ['cdiscount.com']
start_urls = ['http://www.cdiscount.com/mpvv-47237-EANTECHNOLOGY.html']
def parse(self, response):
for sel in response.xpath('//html/body'):
item = CdiscountTestItem()
list_urls = sel.xpath('//@href').extract()
for url in list_urls:
item['list_url'] = url
yield scrapy.Request(url, callback=self.parsefeur, meta={'item': item})
def parsefeur(item, response):
item = response.request.meta['item']
#etc other lines...
而且我总是遇到类型错误:
raise ValueError('Missing scheme in request url: %s' % self._url)
ValueError: Missing scheme in request url:
我在该网站上找到了一些针对“:h”错误的解决方案,但其中 none 解决了我的“:favicon.io”错误...
文档第58行的错误init.py :
if ':' not in self._url:
但是我不明白这一行,o我不能修改它...
有没有人可以帮助我?
您必须注意,因为包含 href
属性的元素不仅仅是 a
(而且我假设您的意图是仅获取 a
元素)。
此外,您必须小心 link 亲戚。除非您确定 link 是绝对值,否则请使用 response.urljoin()
方法获取绝对值 link(请参阅 documentation)。
我尝试使用以下代码在 cdiscount 上抓取卖家页面:
# -*- coding: utf-8 -*-
import scrapy
import re
import numbers
from cdiscount_test.items import CdiscountTestItem
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
f = open('item.csv', 'w').close()
class CdiscountsellersspiderSpider(scrapy.Spider):
name = 'CDiscountSellersSpider'
allowed_domains = ['cdiscount.com']
start_urls = ['http://www.cdiscount.com/mpvv-47237-EANTECHNOLOGY.html']
def parse(self, response):
for sel in response.xpath('//html/body'):
item = CdiscountTestItem()
list_urls = sel.xpath('//@href').extract()
for url in list_urls:
item['list_url'] = url
yield scrapy.Request(url, callback=self.parsefeur, meta={'item': item})
def parsefeur(item, response):
item = response.request.meta['item']
#etc other lines...
而且我总是遇到类型错误:
raise ValueError('Missing scheme in request url: %s' % self._url)
ValueError: Missing scheme in request url:
我在该网站上找到了一些针对“:h”错误的解决方案,但其中 none 解决了我的“:favicon.io”错误...
文档第58行的错误init.py :
if ':' not in self._url:
但是我不明白这一行,o我不能修改它...
有没有人可以帮助我?
您必须注意,因为包含 href
属性的元素不仅仅是 a
(而且我假设您的意图是仅获取 a
元素)。
此外,您必须小心 link 亲戚。除非您确定 link 是绝对值,否则请使用 response.urljoin()
方法获取绝对值 link(请参阅 documentation)。