5.00 / 1 oy

Scrapy crawling işleminde sonraki sayfaya geçmek

Scrapy ile crawl ettiğiniz internet sitelerinde, özellikle de listeleme sayfalarında sayfalama işlemi olabilir. Örneğin bir e-ticaret sitesindeki ürünleri tararken her bir sayfada 12 ürün görüntüleniyor ve bu listeleme 100 sayfa devam ediyor olabilir. 100 kere url kopyalayarak crawl işlemini manuel olarak tekrarlamak çözüm olmayacağı için scrapy'de her bir tarama işleminin tamamlanmasının ardından bir sonraki sayfaya nasıl geçilebileceğine dair bir kod eklemek yerinde olacaktır.

Listeleme sayfalarında takip edebileceğiniz sayfalama işlemleri ya query'de artan bir index numarası olarak yakalanabilir, ya da sayfada bir yerlerde next/sonraki gibi bir link olabilir. Scrapy ile tarama yaparken de "sonraki" linkinin olup olmamasına göre sonraki sayfanın var olup olmadığını tespit edebilir ve varsa sonraki sayfayı tarayarak işlemlerin kesilmeden otomatik olarak devamını sağlayabiliriz.

import scrapy
import logging

class ...(scrapy.Spider):
    ...
    

    def parse(self, response):
        ...

        next_page = response.xpath("//...a[@class='sonrakisayfa']/@href").get()
        if next_page:
            yield scrapy.Request(url=next_page, callback=self.parse)

 

Editör editi: sitedeki bazı diğer benzer yazılar için;

bkz: Web Scraping ile Neler Yapılabilir? Örnek Scraping Projeleri

bkz: Web Scraping Nedir?

bkz: Scrapy'de her bir tarama öncesi erteleme eklemek

bkz: Anaconda Navigator'a Scrapy Kurmak

bkz: Python ve Scrapy ile UTF-8 karakter hatalarını düzeltmek

bkz: Scrapy Nedir ve Nasıl Kullanılır?

bora34

30.09.2021 08:51

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Scrapy crawling işleminde sonraki sayfaya geçmek

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.