2011-07-10 3 views
1

Avoir un problème où je veux ajouter une sortie dans un fichier CSV, mais il ne commence pas en dessous du nom du champ, il est placé dans la rangée suivante séquence au lieu de le placer à la ligne 2 lors du remplissage de l'élément playerMins dans le fichier csv. Quelqu'un peut-il me dire où mon code va mal? Ici, il est:le pompage des éléments dans le fichier csv en utilisant python scrapy - problème avec la sortie dans le fichier csv

class EspnSpider3(BaseSpider): 
    name = "espn3.org" 
    allowed_domains = ["espn3.org"] 
    start_urls = [ 
     "http://scores.espn.go.com/nba/boxscore?gameId=310502004" 

    ] 

    def parse(self, response): 
     hxs = HtmlXPathSelector(response) 
     item = EspnItem() 
     rows = [] 
     playerName = [] 
     playerMins = [] 

     # player names 
     p_names = hxs.select('(//table[@class="mod-data"][1]/tbody/tr)//a/text()').extract() 
     for p_name in p_names: 
      print p_name 
      yield EspnItem(playerName=p_name) 

     # minutes 
     p_minutes = hxs.select('(//table[@class="mod-data"][1]/tbody/tr)/td[2]').extract() 
     for p_minute in p_minutes: 
      print p_minute 
      yield EspnItem(playerMins=p_minute) 
+3

Où est votre code de sortie au format CSV? – bernie

+0

scrapy crawl espn3.org --set FEED_URI = items.csv --set FEED_FORMAT = csv –

+0

juste le standard c au-dessus de –

Répondre

2

a pu résoudre mon problème, après beaucoup de googler et RTFM: Trying to Use an ItemExporter in Scrapy

Voici mon code de travail:

def parse(self, response): 
    hxs = HtmlXPathSelector(response) 
    player_names = hxs.select('(//table[@class="mod-data"][1]/tbody/tr)') 
    for p_name in player_names: 
     l = XPathItemLoader(item=EspnItem(), selector=p_name) 
     l.add_xpath('playerName', 'td[1]/a/text()') 
     l.add_xpath('playerMins', 'td[2]') 
     yield l.load_item() 
Questions connexes