Scrapy

0

Witam.
Mam problem.
Jak zrobić, aby pobrać dane po przejściu na kolejne strony?
Pobiera jedynie z pierwszej strony.
Wklejam, mój kod:
https://pastebin.pl/view/8365a133

Pozdrawiam.

0

Czemu yieldujesz dwie różne rzeczy w jednej metodzie?
Druga rzecz, to jakim fragmentem kodu wchodzisz na stronę?
A trzecie rzecz, tym ostatnim yieldem uzyskujesz adres na który chcesz przejść? Jeśli tak, to próbujesz wejść na to, tak jak na drugą stronę?

0

Zmieniłem, aby yield sie nie powtarzało:
https://pastebin.pl/view/8877896a
Niestety dalej ten sam problem.
Na stronę wchodzę wpisując adres w start_url.
Tak, yieldem przechodze na kolejne strony.
Wchodzi mi na te strony, ale nie pobiera danych: https://pastebin.pl/view/4f6663dc

0

Spróbuj tego sposobu:

import scrapy

class PageSpider(scrapy.Spider):
    name = "page"
    start_urls = ['http://blog.theodo.fr/']

    def parse(self, response):
        for article_url in response.css('.entry-title a ::attr("href")').extract():
            yield response.follow(article_url, callback=self.parse_article)

    def parse_article(self, response):
        content = response.xpath(".//div[@class='entry-content']/descendant::text()").extract()
        yield {'article': ''.join(content)}

Źródło: https://blog.theodo.fr/2018/02/scrape-websites-5-minutes-scrapy/

1 użytkowników online, w tym zalogowanych: 0, gości: 1