Мой код Scrapy просто сканирует ссылки на веб-странице, но не очищает какие-либо данные. На самом деле я пытаюсь собрать некоторые данные о пандемии коронавируса c для моего проекта (например, название страны, города в этой стране и затем количество случаев, несчастных случаев и т. д. c.). Вывод Debug: Crawled (200) в cmd. Я пытаюсь почистить его с сайта Worldometer. (Будучи новичком ie, я не знаю много, и для справки предоставляется ссылка на изображение)
# -*- coding: utf-8 -*-
import scrapy
import logging
class CountriesSpider(scrapy.Spider):
name = 'countries'
allowed_domains = ['www.worldometers.info']
start_urls = ['http://www.worldometers.info/coronavirus/']
def parse(self, response):
countries = response.xpath("//td/a")
for country in countries:
country_name = country.xpath(".//text()").get()
country_link = country.xpath(".//@href").get()
#To access the country link
absolute_url = response.urljoin(country_link)
yield scrapy.Request(url = absolute_url,callback = self.parse_country) #Or do directly--> yield response.follow(url = country_link)
def parse_country(self,response):
rows = response.xpath("(//table[@class = 'table table-bordered table-hover table-responsive usa_table_countries dataTable no-footer'])[1]/tbody/tr")
for row in rows:
city = row.xpath(".//td[1]/text()").get()
cases = row.xpath(".//td[2]/text()").get()
deaths = row.xpath(".//td[4]/text()").get()
active_cases = row.xpath(".//td[6]/text()").get()
yield {
"City":city,
"Total_Number_of_Cases": cases,
"Deaths":deaths,
"Active_Cases":active_cases
}
введите описание изображения здесь