我尝试使用以下代码在cdiscount上抓取卖家的页面:
let app_delegate = UIApplication.shared.delegate as! AppDelegate
我总是遇到类型错误:
app_delegate.yourInstance
我找到了一些解决方案:' h'这个网站上的错误,但没有一个解决了我的':favicon.io'错误...
第58行doc init .py:
中的错误# -*- 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...
但我不明白这句话,我无法修改它......
有没有人可以帮助我?
答案 0 :(得分:1)
您必须注意,因为除a
之外的元素不仅包含href
属性(我在此假设您的目的是获得a
个元素)。
此外,您必须小心相关链接。除非您确定该链接是绝对的,否则请使用response.urljoin()
方法获取绝对链接(请参阅documentation)。