Scrapy ile bir internet sitesini crawl ederken hangi user-agent bilgisini kullanarak bu crawling işlemini yapacağımızı kendimiz belirleyebiliyoruz. Bir internet sitesine tarayıcı aracılığıyla bir istek (request) gönderdiğimizde request header'da user-agent olarak tarayıcı bilgileri görünür. Srapy'de ise herhangi bir değişiklik yapmadan bir sunucuya istek göndermeniz durumunda user-agent bilgilerinizde Scrapy/x.x.x (kullanmakta olduğunuz Scrapy sürümü) görünecektir. Çok sık bot trafiği alan sunucularda bu gibi user-agent'lara karşı otomatik engellemeler olduğu için crawling işleminizi sorunsuz tamamlayabilmek için user-agent'ınızı değiştirerek Scrapy'yi tarayıcı gibi gösterebilirsiniz. Bunun için tarayıcınız ile bir internet sitesine girdikten sonra Network sekmesinden Request Headers altındaki user-agent bilgisini kopyalayın ve aşağıdaki şekilde Scrapy içinde user-agent bilgisini değiştirirken kullanın.
1. yöntem: settings.py dosyası içerisinde:
Yorum olarak işaretlenmiş olan USER_AGENT satırındaki yorumu kaldırın ve kendiniz ve internet siteniz hakkında bilgi verin (anonim olarak crawling yapmak için ise tarayıcınızda kopyalamış olduğunuz user-agent bilgisini buraya yapıştırın).
2. yöntem: scrapy.Request fonksiyonu içerisinde headers bilgilerini güncelleyin
3. yöntem: settings.py dosyası içerisinde DEFAULT_REQUEST_HEADERS seçeneğini değiştirmek:
DEFAULT_REQUEST_HEADERS = {
'User-Agent': Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36
}
Editör editi: sitedeki bazı diğer benzer başlıklar için;
bkz: Scrapy ile yeni bir proje açmak
bkz: Anaconda Navigator'a Scrapy Kurmak
bkz: Scrapy sonuçlarını export etmek (json, xml, csv)
bkz: Selenium nedir?
bkz: Python ve Scrapy ile UTF-8 karakter hatalarını düzeltmek
bkz: Selenium IDE Kurulumu (Chrome ve Firefox)