使用公共代理随机化http请求的包。

http-request-randomizer的Python项目详细描述


Vietnamese version

实现http请求的一种方便方法是使用pythons 请求库。requests最流行的特性之一是简单 代理支持。http作为一种协议具有非常好的定义语义 处理代理,这有助于广泛部署。 http代理< /p>

当进行密集的网络爬行/报废时,代理非常有用 或者你只是想隐藏你的身份(匿名)。

在这个项目中,我使用公共代理来对HTTP请求进行随机化。 通过多个IP地址并使用各种已知的用户代理 这些请求看起来是由不同的 应用程序和操作系统。

代理< /H2>

代理提供了一种使用服务器P(中间商)联系服务器的方法 然后将响应发送回给您。在更邪恶的圈子里, 这是一个让你的存在变得不为人所知并摆出许多客户姿态的主要方法 去一个网站而不是一个客户。网站经常会屏蔽 产生太多请求和代理的IPS是一种绕过的方法。 这个。但即使是模拟攻击,你也应该知道它是怎么做的。

用户代理

令人惊讶的是,唯一能告诉服务器应用程序 触发的请求(如浏览器类型或脚本)是一个头 称为“用户代理”,它包含在http请求中。

源代码

此存储库中的项目代码正在对4进行爬网不同 公共代理网站:*http://proxyfor.eu/geo.php* http://free-proxy-list.net*http://rebro.weebly.com/proxy-list.html* http://www.samair.ru/proxy/time-01.htm

在收集代理数据并过滤最慢的数据之后 随机选择其中一个来查询目标url。请求 超时设置为30秒,如果代理未能返回 将从应用程序代理列表中删除它。我必须 请注意,对于每个请求,都使用不同的代理头。这个 不同的头存储在/data/user_agents.txt文件中 里面有大约900种不同的药物。

安装

如果希望将此模块用作CLI tool,请通过pip:

pip install http-request-randomizer

否则,您可以克隆存储库并使用设置工具:

python setup.py install

命令行界面

假设已安装http请求随机化器,则可以 使用以下命令:

显示帮助消息:

proxyList   -h, --help

指定代理提供程序(必需):

-s {proxyforeu,rebro,samair,freeproxy,all}

指定输出流(默认值:sys.stdout),也可以是文件:

-o, --outfile

以秒为单位指定提供程序超时阈值:

-t, --timeout

以kbs为单位指定代理带宽阈值:

-bw, --bandwidth

显示程序的版本号:

-v, --version

API

要使用http请求随机化器作为库,请将其包含在 requirements.txt文件。然后,您可以简单地生成代理请求。 使用方法调用:

importtimefromhttp_request_randomizer.requests.proxy.requestProxyimportRequestProxyif__name__=='__main__':start=time.time()req_proxy=RequestProxy()print("Initialization took: {0} sec".format((time.time()-start)))print("Size: {0}".format(len(req_proxy.get_proxy_list())))print("ALL = {0} ".format(list(map(lambdax:x.get_address(),req_proxy.get_proxy_list()))))test_url='http://ipv4.icanhazip.com'whileTrue:start=time.time()request=req_proxy.generate_proxied_request(test_url)print("Proxied Request Took: {0} sec => Status: {1}".format((time.time()-start),request.__str__()))ifrequestisnotNone:print("\t Response: ip={0}".format(u''.join(request.text).encode('utf-8')))print("Proxy List Size: {0}".format(len(req_proxy.get_proxy_list())))print("-> Going to sleep..")time.sleep(10)

贡献

非常感谢开源社区 contributing 为了这个项目!

面对一个问题?

打开一个问题 here,和 尽可能详细:)

感觉缺少功能了吗?

请随便开一张票!我们随时欢迎您!

许可证

这个项目是根据麻省理工学院的许可条款授权的。

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

推荐PyPI第三方库


热门话题
maven字段#getGenericType()抛出java。lang.TypeNotPresentException   用java绘制三角形的几何图形   java无法下载主题和发件人地址(rediff)   java如何使代码线程安全   java在尝试转换FileInputStream中的文件时,我遇到了一个FileNotFound异常   java Moxy和Jackson如何将Json映射到Pojo   在foreach循环中使用BufferedWriter生成新行的java问题   java为什么我的测试在单次执行中运行时间小于1秒,而在maven构建中运行时间大于20秒?   java如何显示下载附件的进度条   了解java rmi的良好实践   .net可以将Java portlet嵌入ASP。网页?   循环如何多次执行Java方法?   java如何确保用户输入在给定的有效范围内?   java单元测试定理   java如何在IntelliJ上运行外部构建项目?   JAVA:试图编写一个检查字符串是否为数字的方法。总是返回错误   javahadoop将特定键的所有map方法生成的所有值都发送到一个reduce方法,对吗?   在java中读取和使用文件