IP代理池制作
GitHub主页:
https://github.com/hfldqwe/
使用工具:
获取ip代理:请求
后台构建: Django Redis
代理检测:
ip地址查询: http://ip.chinaz.com/
本网站提供的接口: http://ip.chinaz.com/getip.aspx
代理获取地址:
西刺代理: http://www.xicidaili.com/nn/ num
获取
设计思路
代理的ip,获取以下信息: ip地址端口的服务器地址类型是否为匿名类型生存时间验证时间分别为Redis和ip查询接口,验证代理,成功后计算有效期并进行分类。 将状态、类型和过期日期分别写入Redis。
达成目标
包括用于每15分钟滚动ip代理自动重新提供Python调用的接口,以及http接口保证代理的高可用性,每次调用代理可靠性
使用方法:
在后台
您可以通过以下方法将ip_proxies.py的代理ippool模块导入或继承到文件中:
get_one(type ) type为“http”或“https”,它随机返回可用的代理。 格式为:127.0.0.133608000get_all ) type )与上述格式相同,只是返回全部
save_ip(IP_dict )将一个IP词典作为参数分类并保存
get_IP(num )在一页上
返回集合,消除各要素是元组,记录代理的信息
返回三个参数verify_http(IP、port和timeout=3),并返回布尔值
用于验证代理是否可用,verify_https(self、ip、port、timeout=3)也用于验证https代理是否可用
filter_in_web(ip_set )参数是包含IP信息的元组的集合
调用verify_http和verify_https以确定代理是否可用
filter_one(able_IP,func )用于在取出代理时进行的验证
able_ip是从redis中检索的ip,func是使用此方法的方法,即get_one为get_one,get_all为get_all
filter_all(able_IP,func )同上
able_ip是由上述able_ip构成的集合
write_pool ()相对于以前的包,这里也是最需要改进的地方。
缺陷:
缺陷很明显,需要改进以下几点。
异步处理:这没有异步。 为什么会这样呢? 我还不熟练,所以在后面加。 这样,就可以直接调用,而不用在后台运行。 此外,在进行爬网和验证时,不需要阻止模块之间的逻辑。 不明确,逻辑方面的问题需要改善。 你觉得现在写的东西好像还死了吗? 还是没有学会解耦的思想
下面贴上代码:
最后
你不想看这么多代码玩吗,放心,我给你们录像。
极速赛车五码稳赢技巧可以直接调用,而不用在后台运行。 此外,在进行爬网和验证时,不需要阻止模块之间的逻辑。 不明确,逻辑方面的问题需要改善。 你觉得现在写的东西好像还死了吗? 还是没有学会解耦的思想
下面贴上代码:
最后
你不想看这么多代码玩吗,放心,我给你们录像。