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

提示

我还发现,将用户代理与这个中间件组合在一起,可以有助于最小化由于被禁止而导致的失败!

捐赠

如果你喜欢这个中间件或者它对你有帮助,你可以随时给我一个小捐款,甚至只是一个象征性的数额。它将鼓励我继续开发和改进这个中间件!::火灾:::

Donate here!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java IntelliJ找不到依赖项选项卡   java向字符串数组string[]添加元素并在Junit中测试结果   如何在eclipse中获取活动java项目的名称   如何使用java在mysql中插入时间   java ArrayList更新了插入一行,但Jtable仍然没有刷新   如何在JavaSwing中命名坐标(点)   java Matcher/模式不打印   java错误地设置了arraylist   使用UsernamePasswordCredential提供程序的java列表Azure AD   java在HTTP请求中设置UTC时间   未加载事件:jquery完整日历Java集成   java Maven插件依赖项无法从内部repo解析依赖项   Maven更新重置Java版本   java如何向中添加图片。带有Apache POI XWPF的docx,但不指定其大小   Java最大函数递归