Pipeline scrapy para exportar arquivo csv no formato certo
Fiz a melhoria de acordo com a sugestão do alexce abaixo. O que eu preciso é como na figura abaixo. No entanto, cada linha / linha deve ter uma revisão: com data, classificação, texto e link da revisão.
Eu preciso deixar o processador de itens processar cada revisão de cada página.
Atualmente, o TakeFirst () realiza apenas a primeira revisão da página. Então, 10 páginas, eu só tenho 10 linhas / linhas, como na figura abaixo.
O código Spider está abaixo:
import scrapy
from amazon.items import AmazonItem
class AmazonSpider(scrapy.Spider):
name = "amazon"
allowed_domains = ['amazon.co.uk']
start_urls = [
'http://www.amazon.co.uk/product-reviews/B0042EU3A2/'.format(page) for page in xrange(1,114)
]
def parse(self, response):
for sel in response.xpath('//*[@id="productReviews"]//tr/td[1]'):
item = AmazonItem()
item['rating'] = sel.xpath('div/div[2]/span[1]/span/@title').extract()
item['date'] = sel.xpath('div/div[2]/span[2]/nobr/text()').extract()
item['review'] = sel.xpath('div/div[6]/text()').extract()
item['link'] = sel.xpath('div/div[7]/div[2]/div/div[1]/span[3]/a/@href').extract()
yield item