一种充当旋转代理爬虫程序的机器人,将多个客户端模拟到一台服务器上
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')
方法-要使用的请求方法。仅支持GET
和POST
。默认值是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)
推荐PyPI第三方库
默认情况下,BOT将从API中检索几千个代理。要使用自定义api,请在创建新实例proxy_api='http://api.com'
时传入以下参数,告知bot到达api的地址。
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')
方法-要使用的请求方法。仅支持
GET
和POST
。默认值是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)