Scrapy, Creating Spyders, quotestoscrape

Kategori: Python , 14 Eylül 2019 , JanFranco


VSCode uygulamasını açtıktan sonra terminal ekranını açalım. Terminalin cmd olduğundan emin olduktan sonra aşağıdaki komutu girerek Anaconda'yı aktif edelim:


activate <Anaconda-Dir> # (activate C:\Users\ErenS\Anaconda3)
İlk projemizi oluşturmak için aşağıdaki komutu girelim:


scrapy startproject <proje-name> # (scrapy startproject kpproject)
Bulunduğumuz klasörde proje dosyalarımız geldi. kpproject > kpproject > spiders klasörünün altında quotes.py adında bir dosya açalım. Bu ismi vermemizin sebebi quotes.toscrape.com'dan veri çekecek olmamız. Başka isimler de verebilirdik fark etmemekte. Bu dosyanın içeriğini şu şekilde ayarlayalım:


import scrapy


class QuotesSpider(scrapy.Spider):
    name = "quotes"

    start_urls = [
        'http://quotes.toscrape.com/page/1/',
        'http://quotes.toscrape.com/page/2/'
    ]

    def parse(self, response):

        with open("quotes.txt", "a", encoding="utf-8") as file:
            for quote in response.css("div.quote"):
                title = quote.css("span.text::text").extract_first()
                author = quote.css("small.author::text").extract_first()
                tags = quote.css("div.tags a.tag::text").extract()

                file.write("****************************\n")
                file.write(title + "\n")
                file.write(author + "\n")
                file.write(str(tags) + "\n")
Buradaki name değişkeni spider'ın ismidir ve terminal ekranından bu isimle çağırılacaktır. Bu sebeple unique yani eşsiz bir isim girilmesi gerekmektedir. Dosyayı oluşturduktan sonra spider oluşturmak için aşağıdaki komutları terminal ekranına girelim:


cd kpproject
scrapy crawl quotes
Bu komutları çalıştırdıktan sonra url listesindeki web sitelerinden belirli yerleri çektik ve txt dosyasına kaydettik. Selectorleri bir sonraki yazıda açıklayacağım, bu yazıda sadece Scrapy'nin nasıl kullanıldığını gördük.


Sonraki Yazı: Scrapy, Selectors, XPath, CSS
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın