Я пытаюсь создать файл CSV с помощью Scrapy, он работает, но не так, как ожидалось. У меня есть таблица html, которая имеет несколько строк, я хочу то же самое в CSV. Однако следующий код преобразует все строки HTML в одну строку CSV.
код
class DemoSpider(scrapy.Spider):
name = "DemoSpider"
def start_requests(self):
urls = []
for page in range(1, 2):
url = "https://directory.easternuc.com/publicDirectory?page=%s" %page
urls.append(url)
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
item = TutorialItem()
item['name'] = response.selector.xpath("//tr/td/h4/text()").getall()
item['phone'] = response.selector.xpath("//tr/td[2]/text()").getall()
item['mobile'] = response.selector.xpath("//tr/td[3]/text()").getall()
item['email'] = response.selector.xpath("//tr/td[4]/text()").getall()
yield item
, если я изменю метод getall()
на get
Я получаю только первую строку с веб-сайта в csv
Примечание. В качестве обходного пути я могу найти общее количество строк на веб-сайте, а затем повторить его. Однако, похоже, что в старой версии scrap работает.