Scrapy Spider Oluşturma

Scrapy ile Spider Oluşturma


Bu yazımızda Scrapy ile kendi Spider'larımızı nasıl yapacağımızı göreceğiz. Terminale aşağıdaki komutu veriyoruz.

$ scrapy genspider orumcekadam toscrape.com

Bize orumcekadam.py isminde bir python dosyası oluşturuyor ve toscrape.com sitesinden bilgi çekeceğiz. Sublime Text editörüm ile dosyayı açıyorum.



Terminalde orumcekadam yazdım ancak OrumcekadamSpider isimli bir sınıf oluşturdu. Oluşturacağımız her spider scrapy.Spider sınıfını miras almak(inherit) zorundadır.

name: spider'ın adı.
allowed_domains: spider'ın gezdiği domainlerin listesi.
start_urls: Spider'ın gezmeye başlayacağı yerden sonraki gezinmeler için kökleri olacak url'lerin listesi. [ingilizce çeviri denemeleri :D ]. Kısaca bilgi çekeceğimiz url(ler).

* [ self hakkında bilgi için ]

Şimdi kodlarımızı çalıştıralım:
$ scrapy runspider orumcekadam.py 
yazınca terminalde bir çıktı göreceğiz. INFO'lar, DEBUG'lar, Log çıktıları vs vs. ve bizim URL'den gelen bilgi!

self.log() methoduna verdiğim parametreyi de burada görüyoruz. Terminal çıktımızın bir parçasını buraya kopyalıyorum:


2017-10-16 14:53:24 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2017-10-16 14:53:24 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://quotes.toscrape.com/random> (referer: None)
2017-10-16 14:53:24 [orumcekadam] DEBUG: ADNAN KAYA WAS HERE, ALOHA: http://quotes.toscrape.com/random
2017-10-16 14:53:24 [scrapy.core.scraper] DEBUG: Scraped from <200 http://quotes.toscrape.com/random>
{'text': u'\u201cThere is no friend as loyal as a book.\u201d', 'author_name': u'Ernest Hemingway', 'tags': u'books'}

2017-10-16 14:53:24 [scrapy.core.engine] INFO: Closing spider (finished)


DEBUG kısmında Crawled (200)yani başarılı request yapıldı.
DEBUG: ADNAN KAYA WAS HERE, ALOHA mesajımızı görüyoruz :)
DEBUG: Scraped from <200 URL'miz> ve çıktımız... Text, author name, tags bilgisi dictionary(sözlük) olarak anahtar:değer(key:value) şeklinde gösteriliyor.

Web sitelerinden aldığınız bilgiyi json dosyasına kaydetmek için :
$ scrapy runspider orumcekadam.py -o orumcekadam.json

$ cat orumcekadam.json veya $ more orumcekadam.json ile json dosyanızı görüntüleyebilirsiniz.


Yorumlar