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关闭应用程序按钮Listener   Java中的多线程同步在Java示例中的思考   java如何查看Tomcat正在使用/访问的JAR?   java My代码在调用垃圾收集器后不会终止   多线程Java连接线程池和connectionfactory?   java在运行时修改JAR文件   java Android:使用光标时引发IllegaleException   在Netbeans中测试不可执行库的java?   泛型在参数上强制子类Java类型   spring Java:继承与依赖注入“自动连线”   javascript如何解析这个xml元素   java打印特定序列中的数组   带有ProcessingTimeSessionWindow的java Apache Flink自定义触发器   java如何配置消息驱动的Bean应用程序和Glassfish来使用来自远程MessageBroker的消息?