我正在努力学习如何使用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
有人有人帮我吗?
非常感谢!!!
答案 0 :(得分:2)
同一问题的一种可能情况是网站内容是动态生成的。您可以通过访问网站并点击查看页面源来进行检查。 在这种情况下,您可能必须同时使用飞溅和刮擦。
答案 1 :(得分:1)
这里的主要问题是您不能将parse
方法中的项目传递回Scrapy引擎。 parse
中的最后一个命令是pass
,因此您只需丢弃该项目。相反,您需要将项目从spider传递到Scrapy引擎,以便使用yield item
进行进一步处理。