Scrapy - 爬行(200)和referer:none

时间:2017-06-20 10:24:26

标签: python scrapy referer

我正在努力学习如何使用scrapy和python,但我根本不是专家......离这里很远。 抓取此页面后我总是有一个空文件:product of c-discount我不明白为什么......

这是我的代码:

@media only screen and (max-width: 800px) {
#home-product-tiles-wrapper .fusion-row {
  display: flex !important;
  flex-wrap: wrap !important;
}
#home-product-tiles {
    width: 48% !important;
    margin-right: 2% !important;
    float: left !important;
    display: inline !important;
}
}

我在cmd窗口中得到的结果:

import scrapy

from cdiscount_test.items import CdiscountTestItem

f = open('items.csv', 'w').close()

class CdiscountsellersspiderSpider(scrapy.Spider):
    name = 'CDiscountSellersSpider'
    allowed_domains = ['cdiscount.com']
    start_urls = ['http://www.cdiscount.com/mpv-8732-SATENCO.html']

    def parse(self, response):
        items = CdiscountTestItem()
        name = response.xpath('//div[@class="shtName"]/div[@class="shtOver"]/h1[@itemprop="name"]/text()').extract()
        country = response.xpath('//div[@class="shtName"]/span[@class="shTopCExp"]/text()').extract()

        items['name_seller'] = ''.join(name).strip()
        items['country_seller'] = ''.join(country).strip()
        pass

有人有人帮我吗?

非常感谢!!!

2 个答案:

答案 0 :(得分:2)

同一问题的一种可能情况是网站内容是动态生成的。您可以通过访问网站并点击查看页面源来进行检查。 在这种情况下,您可能必须同时使用飞溅和刮擦。

答案 1 :(得分:1)

这里的主要问题是您不能将parse方法中的项目传递回Scrapy引擎。 parse中的最后一个命令是pass,因此您只需丢弃该项目。相反,您需要将项目从spider传递到Scrapy引擎,以便使用yield item进行进一步处理。