scrapy scrapingbee
1.0.0
將零食與刮擦API集成,以使用無頭瀏覽器進行JavaScript和代理旋轉。需要在scrapingbee.com上創建一個帳戶以獲取API密鑰。
pip install scrapy-scrapingbee
將您的SCRAPINGBEE_API_KEY和ScrapingBeeMiddleware添加到項目設置。不要忘記根據您的刮擦計劃設置CONCURRENT_REQUESTS 。
SCRAPINGBEE_API_KEY = 'REPLACE-WITH-YOUR-API-KEY'
DOWNLOADER_MIDDLEWARES = {
'scrapy_scrapingbee.ScrapingBeeMiddleware' : 725 ,
}
CONCURRENT_REQUESTS = 1繼承蜘蛛從ScrapingBeeSpider並產生ScrapingBeeRequest 。
ScrapingBeaspider覆蓋默認記錄儀,以將您的API密鑰隱藏在零件日誌中。
在下面,您可以在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 ):
...您可以在crapingbeerequest的參數中傳遞crapingbee參數。標題和餅乾像普通的砂紙請求一樣通過。 crapingbeerequest格式化所有參數,標頭和cookie to crapingbee api期望的格式。
將您的API密鑰添加到stayers.py。
要運行示例,您需要克隆此存儲庫。在您的終端中,轉到examples/httpbin/httpbin ,並用以下方式運行示例蜘蛛。
scrapy crawl httpbin