2013-12-23 3 views
0

вот мой паукSCRAPY выход CSV имея все результаты в одной строке

from scrapy.spider import BaseSpider 
from scrapy.selector import Selector 
from sample1.items import ppppkartItem 

class ppppkartSpider(BaseSpider): 
    name = "ppppkart" 
    allowed_domains = ["ppppkart.com"] 
    start_urls = ["http://www.ppppkart.com/mobilesotracker=nmenu_sub_electronics_0_Mobiles"] 

    def parse(self, xmlresponse): 
     sel = Selector(xmlresponse) 
     sites = sel.xpath('//html/body/div/div[2]/div/div[2]/div[2]/div/div[2]') 
     items = [] 
     for site in sites: 
      item = ppppkartItem() 
      item['image'] = site.xpath('.//a/img/@src').extract() 
      item['price'] = site.xpath('.//span/text()').extract() 
      item['title'] = site.xpath('.//a/text()').extract() 
      item['link'] = site.xpath('.//a/@href').extract() 
      items.append(item) 
     return items  

здесь мой деталь

`

from scrapy.item import Item, Field 

class ppppkartItem(Item): 
    price = Field() 
    title = Field() 
    link = Field() 
    image = Field() 

вот мой результат

[{"image": ["http://img8a.ppppcart.com/image/mobile/q/f/r/apple-iphone-5c-imadpnhyw2qnxkh5.jpeg", "http://img7a.ppppcart.com/image/mobile/j/z/n/htc-one-max-imadqrqeyceghdba.jpeg", 

весь результат в одной строке, i ne ред колонка мудрый результат, что может я do..thanks заранее

я хочу результат, чтобы быть как

image:img result; price:price result; title:title result; link:link result; 
image:2nd img result; price:2nd price result; title:2nd title result; link:2nd link result; 
+0

Можете ли вы быть более конкретными. Покажите нам пример того, как вы хотели бы, чтобы ваши царапины выглядели, для первых 2 «сайтов». – not2qubit

ответ

0

Есть несколько способов сделать эту задачу:

  1. Вы можете использовать Scrapy встроенный, если функциональность для вывода элемента в формате CSV:

    SCRAPY ползать [ваше имя паук] -o items.csv -t CSV

    Для получения дополнительной информации читайте здесь: http://doc.scrapy.org/en/latest/topics/feed-exports.html#topics-feed-exports

  2. Вы можете создать свой собственный трубопровод и использовать товар экспортера. то вы будете в состоянии иметь больше контроля над тем, что происходит с вашей позицией, то есть вы можете оставить некоторые элементы и т.д. Для получения дополнительной информации об этих двух темах чтения: http://doc.scrapy.org/en/latest/topics/item-pipeline.html и http://doc.scrapy.org/en/latest/topics/exporters.html

Смежные вопросы