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