В Python И Scrapy Отсутствует Какая-Либо Связь

#python #web-scraping #scrapy

Вопрос:

Привет, ребята, я новичок в Scrapy и немного смущен тем, как работает синтаксический анализ. Здесь у меня есть 2 кода сначала с 1 анализом я получаю 20 результатов

 def start_requests(self):
    url = 'https://news.detik.com/indeks/'
    date = '01/01/2020'

    assert type(url) is str 
    assert type(date) is str 

    max_page = 1
    
    for page in range(1, max_page   1):
        complete_url = url   str(page)   '?date='   date
        yield scrapy.Request(complete_url, self.parse)    

def parse(self, response):
    links = response.xpath('//*[@id="indeks-container"]/article//h3/a/@href').extract()
    
    for link in links:
        yield {'link' : link}
 

но, если я добавлю новый анализ, результат уменьшится до 18

    def start_requests(self):
    url = 'https://news.detik.com/indeks/'
    date = '01/01/2020'

    assert type(url) is str 
    assert type(date) is str 

    max_page = 1
    
    for page in range(1, max_page   1):
        complete_url = url   str(page)   '?date='   date
        yield scrapy.Request(complete_url, self.parse)    

def parse(self, response):
    links = response.xpath('//*[@id="indeks-container"]/article//h3/a/@href').extract()
    
    for link in links:
        yield scrapy.Request(link, callback=self.parse_content)

def parse_content(self, response):

    yield {
        'title': response.css('.detail__title::text').get().strip()
    }
 

мой вопрос в том, что произойдет ?

Комментарии:

1. Может быть, есть дубликаты URL-адресов? В журнале что-нибудь написано?

Ответ №1:

Во втором случае есть два исключения,

заголовки следующих статей находятся внутри .detail_text класса, а .detail_title не класса

‘Bandara Halim Pastikan Penumpang Dapat Kompensasi 100 Persen’ and ‘Kunjungi Posko Banjir Kemang, Anies Pastikan Kebutuhan Warga Terpenuhi’