scrapy锡拉代理:从锡拉获取有效代理的随机代理中间件。
scrapy-scylla-proxies的Python项目详细描述
用于Scrapy
的随机代理中间件使用Scylla来获取有效代理。< EH3>
注:我不是一个'真正的'程序员,帮助总是赞赏!但它有效!…现在。
使用随机代理来处理FLIP请求以避免IP禁止 提高爬行速度,这就进入了SelLLA项目,它提供了代理的本地数据库。
安装并运行锡拉
“锡拉”项目需要单独设立!!最快的方法是使用Docker容器。以下命令将下载并运行“锡拉”(当然,前提是您安装了Docker)。
docker run -d -p 8899:8899 -p 8081:8081 --name scylla wildcat/scylla:latest
< H2>安装SCLLA代理软件< /H2>快捷方式:
pip install scrapy-scylla-proxies
或者签出源并运行
python setup.py install
在scrapy的“settings.py”中放什么
这是你将需要集成这个中间件与scrapy的东西。
ssp_enabled-此必须设置为true。
ssp_scylla_uri-锡拉api的位置(默认值:'http://localhost:8899')。
ssp_proxy_timeout-刷新代理列表的频率(默认值:60s)。
^ {STR 1 } $sSP.http>是否只使用HTTPS代理,如果您正在抓取HTTPS站点(默认值:TRUE),则需要将此集合设置为TRUE。
ssp_splash_request_enabled-此中间件是否需要为“scrapy.request”或“splash request”设置代理(默认值:false)
示例“settings.py”
这是一个直接从我的工作铲取来的样本,我用它从一个网站上刮去大约15000个项目而没有任何“禁令”。# Configure maximum concurrent requests performed by Scrapy (default: 16)
CONCURRENT_REQUESTS = 32
# Enable or disable downloader middlewares
# See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html
DOWNLOADER_MIDDLEWARES = {
# For retries
'scrapy.downloadermiddlewares.retry.RetryMiddleware': 290,
# For random scylla proxies
'scrapy_scylla_proxies.random_proxy.RandomProxyMiddleware': 300,
# For http proxy ip rotation
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 750,
}
DOWNLOAD_TIMEOUT = 180
RETRY_TIMES = 10
RETRY_HTTP_CODES = [500, 502, 503, 504, 408, 400, 429, 403, 404]
# scrapy-scylla-proxies settings
# Enabled
SSP_ENABLED = True
# Location of the scylla server
SSP_SCYLLA_URI = 'http://localhost:8899'
# Proxy timeout in seconds
SSP_PROXY_TIMEOUT = 60
# Get only https proxies
SSP_HTTPS = True
提示
我还发现,将用户代理与这个中间件组合在一起,可以有助于最小化由于被禁止而导致的失败!
捐赠
如果你喜欢这个中间件或者它对你有帮助,你可以随时给我一个小捐款,甚至只是一个象征性的数额。它将鼓励我继续开发和改进这个中间件!::火灾:::