【发布时间】:2019-06-04 01:29:41
【问题描述】:
我最近回到了几个月前编写的一个乱码。
代码的目的是抓取一些亚马逊产品的数据,它的工作原理是这样的:
我们以这个页面为例
代码所做的是输入该页面的每个产品并从中获取数据,在完成从该页面抓取所有数据后,它会移动到下一个(在本例中为第 2 页)。
最后一部分停止工作。
我在规则中有这样的东西(我不得不重写一些 xpath,因为它们已经过时了)
import scrapy
import re
import string
import random
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapyJuan.items import GenericItem
from scrapy.exceptions import CloseSpider
from scrapy.http import Request
class GenericScraperSpider(CrawlSpider):
name = "generic_spider"
#Dominio permitido
allowed_domain = ['www.amazon.com']
search_url = 'https://www.amazon.com/s?field-keywords={}'
custom_settings = {
'FEED_FORMAT': 'csv',
'FEED_URI' : 'GenericProducts.csv'
}
rules = {
#Next button
Rule(LinkExtractor(allow =(), restrict_xpaths = ('//li[@class="a-last"]/a/@href') )),
#Every element of the page
Rule(LinkExtractor(allow =(), restrict_xpaths = ('//a[contains(@class, "a-link-normal") and contains(@class,"a-text-normal")]') ),
callback = 'parse_item', follow = False)
}
def start_requests(self):
txtfile = open('productosGenericosABuscar.txt', 'r')
keywords = txtfile.readlines()
txtfile.close()
for keyword in keywords:
yield Request(self.search_url.format(keyword))
def parse_item(self,response):
这就像一个月前一样工作,但我现在无法让它工作。
有什么想法吗?
【问题讨论】:
标签: python-3.x xpath web-scraping scrapy