Scrapy'de yazmış olduğunuz css ya da xpath'lerden kaynaklı olarak istediğiniz response'ları alamıyor ve kalabalık terminal kodları içerisinde debug sürecini de yönetemiyorsanız aşama aşama xpath/css kodlarının response verilerini loglayarak manuel bir hata ayıklama süreci oluşturabilirsiniz.
Scrapy'de çıktı almak için de en pratik yöntem yine loglama yapmak olduğu için uygulamanız gereken adımlar şu şekilde:
import scrapy
import logging
class ...(scrapy.Spider):
...
def parse(self, response):
for urun in response.xpath("//.../div[@class='urun']"):
urunlink = urun.xpath(".//.../@href").get()
logging.error(urunlink)
yield {
'urunler': urunlink
}
Not: Gereksiz kodları çıkartarak sadece logging mantığını göstermek istedim, bu şekilde projenizin debug edilmesini gerek gördüğünüz noktalarında loglama yaparak nereden eksik veri aldığınızı kontrol edebilirsiniz.
Editör editi: sitedeki bazı diğer benzer yazılar için;
bkz: Web Scraping Nedir?
bkz: Scrapy ile response alma örneği (en basit yöntem)
bkz: Scrapy crawling işleminde sonraki sayfaya geçmek
bkz: Scrapy'de user-agent değiştirmek
bkz: Anaconda Navigator'a Scrapy Kurmak
bkz: Scrapy Nedir ve Nasıl Kullanılır?