Integrasi gesekan dengan API ScrapingBee untuk menggunakan browser tanpa kepala untuk rotasi JavaScript dan proxy. Perlu membuat akun di ScrapingBee.com untuk mendapatkan kunci API.
pip install scrapy-scrapingbee
Tambahkan SCRAPINGBEE_API_KEY Anda dan ScrapingBeeMiddleware ke pengaturan proyek Anda.py. Jangan lupa untuk mengatur CONCURRENT_REQUESTS sesuai dengan rencana scrapingbee Anda.
SCRAPINGBEE_API_KEY = 'REPLACE-WITH-YOUR-API-KEY'
DOWNLOADER_MIDDLEWARES = {
'scrapy_scrapingbee.ScrapingBeeMiddleware' : 725 ,
}
CONCURRENT_REQUESTS = 1 Mewarisi laba -laba Anda dari ScrapingBeeSpider dan menghasilkan ScrapingBeeRequest .
Scrapingbeespider mengesampingkan logger default untuk menyembunyikan kunci API Anda di log gesek.
Di bawah ini Anda dapat melihat contoh dari laba -laba di httpbin.py.
from scrapy_scrapingbee import ScrapingBeeSpider , ScrapingBeeRequest
JS_SNIPPET = 'window.scrollTo(0, document.body.scrollHeight);'
class HttpbinSpider ( ScrapingBeeSpider ):
name = 'httpbin'
start_urls = [
'https://httpbin.org' ,
]
def start_requests ( self ):
for url in self . start_urls :
yield ScrapingBeeRequest ( url , params = {
# 'render_js': False,
# 'block_ads': True,
# 'block_resources': False,
# 'js_snippet': JS_SNIPPET,
# 'premium_proxy': True,
# 'country_code': 'fr',
# 'return_page_source': True,
# 'wait': 3000,
# 'wait_for': '#swagger-ui',
},
headers = {
# 'Accept-Language': 'En-US',
},
cookies = {
# 'name_1': 'value_1',
})
def parse ( self , response ):
...Anda dapat melewati parameter scrapingbee dalam argumen params dari scrapingbeerequest. Header dan cookie disahkan seperti permintaan scapy normal. ScrapingBeerequest memformat semua parameter, header, dan cookie untuk format yang diharapkan oleh API ScrapingBee.
Tambahkan tombol API Anda ke settings.py.
Untuk menjalankan contoh yang Anda butuhkan untuk mengkloning repositori ini. Di terminal Anda, buka examples/httpbin/httpbin dan jalankan contoh laba -laba dengan:
scrapy crawl httpbin