Ich versuche Top 100 t20 Batsmen von ICC-Seite zu verschrotten, aber die CSV-Datei, die ich bekomme, ist leer. Es gibt keine Fehler in meinem Code (zumindest kenne ich sie nicht). Hier ist meine Artikel DateiMein Scrapy kratzt nichts (leere csv-Datei)
import scrapy
class DmozItem(scrapy.Item):
Ranking = scrapy.Field()
Rating = scrapy.Field()
Name = scrapy.Field()
Nationality = scrapy.Field()
Carer_Best_Rating = scrapy.Field()
dmoz_spider Datei
import scrapy
from tutorial.items import DmozItem
class DmozSpider(scrapy.Spider):
name = "espn"
allowed_domains = ["relianceiccrankings.com"]
start_urls = ["http://www.relianceiccrankings.com/ranking/t20/batting/"]
def parse(self, response):
#sel = response.selector
#for tr in sel.css("table.top100table>tbody>tr"):
for tr in response.xpath('//table[@class="top100table"]/tr'):
item = DmozItem()
item['Ranking'] = tr.xpath('//td[@class="top100id"]/text()').extract_first()
item['Rating'] = tr.xpath('//td[@class="top100rating"]/text()').extract_first()
item['Name'] = tr.xpath('td[@class="top100name"]/a/text()').extract_first()
item['Nationality'] = tr.xpath('//td[@class="top100nation"]/text()').extract_first()
item['Carer_Best_Rating'] = tr.xpath('//td[@class="top100cbr"]/text()').extract_first()
yield item
was mit meinem Code falsch?
Ich weiß nicht viel über Scrapy, aber wo fordern Sie die HTML oder schreiben Sie an eine CSV? –
@ cricket_007 in sel.css Ich übergebe den Klassennamen der Tabelle, es ist eine for-Schleife, um alle Zeilen zu holen und jede Klasse in Items ist der Klassenname, der in html in Bezug auf die Item-Liste erwähnt wird zB 'Ranking' title hat class = top100id. Ich hoffe, das war das, was du gefragt hast? – hyeri
habe gerade Ihren bearbeiteten Beitrag gesehen. Ich schrieb in die CSV-Datei mit dem Befehl "scrapy crawl espn -o items.csv" – hyeri