一种充当旋转代理爬虫程序的机器人,将多个客户端模拟到一台服务器上

RotatingProxyBot的Python项目详细描述


旋转proxybot

一种使用旋转代理来模拟向单个服务器发出请求的多个客户端的bot

0.0.3版

作者

daniel gisolfi-所有当前工作-dgisolfi

用法

#!/usr/bin/python3fromRotatingProxyBotimportProxyBot# Create new custom botbot=ProxyBot(address='IP OR URL',method='POST'desired_reqs=10,reqs_per_int=2,wait_time=60# 1min)# Start Submiting and rotating proxiesbot.enable()
< H2>构建代理列表

BOT需要一个用于请求的代理列表,它可以使用API来检索代理或文件来导入它们。

来自API 的代理

默认情况下,BOT将从API中检索几千个代理。要使用自定义api,请在创建新实例proxy_api='http://api.com'时传入以下参数,告知bot到达api的地址。

< H3>来自文件的代理 >使用代理的自定义文件而不是默认API,将以下参数传递给机器人构造函数< } > } 对于BOT能够导入代理列表,该文件应该具有以下结构:

0.0.0.0:80
1.1.1.1:90
2.2.2.2:20

方法

以下是软件包中的一些有用方法

Proxybot

  • getrequest(proxy)-如果传递了特定的代理,则此方法将使用指定的代理对创建bot时设置的地址执行GET请求。例如:getRequest('0.0.0.0:80')
  • postrequest(proxy)-如果传递了特定的代理,则此方法将使用指定的代理对创建bot时设置的地址执行POST请求。例如:postRequest('0.0.0.0:80')
  • preformrotate()-如果被调用,bot将从rotatingproxy类请求一个新的代理,并将指定的请求执行到指定的地址,返回response元素
  • enable()-如果调用,将启动bot的主循环,使用设置的间隔数和等待时间向地址发出指定的请求
  • disable()-如果调用,将关闭程序的主循环并删除bot

旋转代理

  • {STR 1 } Bug BudLogyListSee()/Stult>当被调用时,将与SET API(或默认API)联系以检索最新的代理列表,在该列表中它可以从请求中产生请求< /LI> 将从提供的文件名中构建代理列表,该值为1。
  • rotate()-将返回列表中的第0个代理并将其添加到已使用的代理列表中。

构造函数的附加参数

以下是可以传递到proxybot类的构造函数中的关键字参数。

  • id-用给定的数字id分配proxybot的实例

    示例:RotatingProxyBot(id=1)

  • address-bot要联系的IP或URL将默认为测试程序API

    示例:RotatingProxyBot(address='0.0.0.0')

  • 方法-要使用的请求方法。仅支持GETPOST。默认值是GET 示例:RotatingProxyBot(method='POST')

  • params-要随请求传递的参数,适用于所有请求方法 示例:RotatingProxyBot(params={'example':'test'})

  • 需要的请求-需要完成的请求数

    示例:RotatingProxyBot(desired_reqs=10)

  • keep_alive-一个布尔值允许bot继续永远发出请求

    如果设置为True则不设置desired_reqs 示例:RotatingProxyBot(keep_alive=True)

  • reqs_per_int-每个间隔的请求数,等待前要完成的请求数。这将防止服务器被关闭 示例:RotatingProxyBot(reqs_per_int=2)

  • 等待时间-等待下一个请求间隔的时间(秒) 示例:RotatingProxyBot(wait_time=600)

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

推荐PyPI第三方库


热门话题
JavaSpringbean已创建但未自动连接   java LibGDX游戏在三星Galaxy Grand Prime上结束   如何在Java中列出字符串句子中所有匹配条件的单词   java在Recyclerview中使用“putExtra”传递数据   java从一个特定的数组中提取特定的JSON对象,以便在Android中通过一个意图放入另一个活动   java需要使用IntelliJ和设置项目SDK的帮助   java springcontextindexer和Swagger 3   java使用indexOf和substring计算数字   java使用xml解析在word文档中查找隐式分页符   在添加<context:componentscan basepackage=“com.young.user”/   java无条件更改JTable单元格的背景色   选择列表中的java调用oracle函数:节点无数据类型   java如何添加缓冲图像作为JFrame的背景,然后在此图像上添加面板?   java Javadoc找不到用scala编写的类   java连接到文件共享程序的IP地址   java将数组元素加载到集合中   Tomcat中的java servlet、过滤器和线程   非Bean对象中的java EJB CDI注入?   java与println和printf的不同舍入