Мой код Scrapy только сканируется (Debug: Crawled (200)), но не очищает данные - PullRequest
0 голосов
/ 20 апреля 2020

Мой код 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
        }

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...