Я пытаюсь сорвать топ 100 t20 batsmen с сайта icc, однако файл csv, который я получаю, пуст. В моем коде нет ошибок (по крайней мере, я не знаю о них). Вот мой файл элементМоя Scrapy не соскабливает что-либо (пустой файл csv)
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 файл
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
, что случилось с моим кодом?
Я мало знаю о scrapy, но где вы запрашиваете html или пишите на csv? –
@ cricket_007 in sel.css Я передаю имя класса таблицы, это цикл for для извлечения всех строк, и каждый класс в элементах - это имя класса, упомянутое в html, относящееся к списку элементов, например, название «Ranking» имеет класс = top100id. Надеюсь, это было то, о чем вы спрашивали? – hyeri
только что видел отредактированный пост. Я написал файл csv с помощью команды «scrapy crawl espn -o items.csv» – hyeri