获得免费代理的包

get-free-prox的Python项目详细描述


获取免费代理 get_free_proxy是一个从网站获取免费代理的工具

安装

pip install get-free-proxy

用法

get_free_proxy依赖于gen_browser_header。在

创建gen_browser_头设置

{import gen_browser_header.self.SelfEnum as gbh_self_enum
cur_gbh_setting = gbh_setting.GbhSetting()
cur_gbh_setting.proxy_ip = ['10.11.12.13:8080']
cur_gbh_setting.browser_type = {gbh_self_enum.BrowserType.All}
cur_gbh_setting.firefox_ver = {'min': 74, 'max': 75}
cur_gbh_setting.chrome_type = {gbh_self_enum.ChromeType.Stable}
cur_gbh_setting.chrome_max_release_year = 1
cur_gbh_setting.os_type = {gbh_self_enum.OsType.Win64}

创建get_free_proxy设置

import get_free_proxy.self.SelfEnum as gfp_self_enum
import get_free_proxy.setting.Setting as gfp_setting
cur_gfp_setting = gfp_setting.GfpSetting()
cur_gfp_setting.proxy_type = {gfp_self_enum.ProxyType.HIGH_ANON}
cur_gfp_setting.protocol = {gfp_self_enum.ProtocolType.HTTP, gfp_self_enum.ProtocolType.HTTPS}
cur_gfp_setting.country = {gfp_self_enum.Country.All}
cur_gfp_setting.storage_type = {gfp_self_enum.StorageType.All}
cur_gfp_setting.mysql = { 'host': '127.0.0.1', 'port': 3306, 'user': 'root', 'pwd': '1234', 'db_name': 'db_proxy', 'tbl_name': 'tbl_proxy', 'charset': 'utf8mb4'}
cur_gfp_setting.redis = { 'host': '127.0.0.1', 'port': 6379, 'db': 0, # 0~15 'pwd': None }
cur_gfp_setting.result_file_path = os.path.join(tempfile.gettempdir(), 'result.json')
cur_gfp_setting.valid_time_in_db = 86400
cur_gfp_setting.site_max_page_no = 2
cur_gfp_setting.site = {gfp_self_enum.SupportedWeb.Xici}

开始获得免费代理

mainOp = MainOp(cur_gfp_setting, cur_gbh_setting)
首先清空数据库(反正都要全部重新读取网页) mainOp.del_proxy()
网址 mainOp.check_if_site_need_proxy()
[答:] tmp_proxies = mainOp.get_proxy_without_proxy()
first_validate_proxies = mainOp.async_validate_proxies(tmp_proxies, 'https://www.baidu.com')
在这里_设置.proxy_ip
if len(first_validate_proxies) > 0:
tmp_proxies = mainOp.get_proxy_with_proxy(proxies=first_validate_proxies)
else:
tmp_proxies = mainOp.get_proxy_with_proxy(proxies=None)
second_validate_proxies = mainOp.async_validate_proxies(tmp_proxies, 'https://www.baidu.com')
all_validate_proxies = first_validate_proxies+second_validate_proxies
print('最终有效代理%s' % all_validate_proxies)

mainOp.save_proxy(proxies=all_validate_proxies)

gfp_设置

  1. proxy_类型
    类型:set,元素为enum=>;gfp峎self_枚举代理类型
    默认值:{gfp_self_枚举.ProxyType.HIGH\u ANON}
    description:proxy有3种类型:transparent/anonymous/high\u anonymous,TRANS/ANON/high_nonymous,还有一个additional one All, 如果设置,将被TRANS+ANON+HIGH_non替换
  2. 协议
    类型:set,元素为enum=>;gfp峎self_枚举协议类型 默认值:{gfp_self_枚举.ProtocolType.HTTP,gfp自己_枚举.ProtocolType.HTTPS}
    说明:代理协议有4种类型:HTTP、HTTPS、SOCK4、SOCK5。有一个附加的全部,是集,将被替换 HTTP+HTTPS+SOCK4+SOCK5。在
  3. ^{str/> 类型:set,元素为enum=>;gfp峎self_枚举国家
    默认值:{gfp_self_枚举国家/地区中国}
    说明:有些网站提供来自所有国家的代理,参数会过滤国家。还有一个附加的 一切都已定,都将无视国家。在
  4. storage_类型 类型:set,元素为enum=>;gfp峎self_枚举.存储类型
    默认值:{gfp_self_枚举.StorageType.All}
    description:当前支持3存储类型:Mysql/Redis/File。有一个附加的全部,是集,将被替换 Mysql+Redis+文件
  5. mysql
    类型:dict
    默认值:
    {
    “主机”:“127.0.0.1”,
    “端口”:3306,
    'user':'root',
    “密码”:“1234”,
    '数据库名称':'数据库代理',
    'tbl_name':'tbl_proxy',
    '字符集':'utf8mb4'
    }
    description:如果storage_type包含Mysql,则设置此参数以连接Mysql。在
  6. redis
    类型:dict 默认值:
    {
    “主机”:“127.0.0.1”,
    “端口”:6379,
    “db”:0,#0~15
    “pwd”:无
    }
    description:如果storage_type包含Redis,则将此参数设置为connect Redis。在
  7. result_file_路径
    类型:string
    默认值:os.path.join操作系统(临时文件.gettempdir(), '结果.json')
    description:如果storage_type包含文件,则所有get proxy都将保存到由result_File_path定义的文件中
  8. valid_time_in_db
    类型:int
    默认值:86400
    单位:
    说明:由于所有获得的代理都是免费的,不确定这些代理何时到期。所以设置这个参数,如果代理过期这个持续时间,不会删除/不选
  9. site_max_页码
    类型:int
    默认值:2
    说明:最小值:2, 最大值:9。网站whic提供免费代理,内容分页。此参数决定有多少页 将处理以提取代理。在
  10. site
    类型:set,enum=>;gfp\u self_enum.SupportedWeb
    默认值:{gfp_self_enum.SupportedWeb.Xici}
    描述:此参数决定将使用哪个站点提取代理。目前仅支持4个站点: https://www.xicidaili.comhttps://www.kuaidaili.com/freehttps://hidemy.name/en/proxy-list/#listhttps://proxy-list.org/english。 如果全部设置好,将被以上4个站点替换。在

变更历史

0.1.0使用请求html替换请求
0.1.1匹配gen_浏览器0.1.3:当gen_头时,根据参数url添加主机 0.1.2增加对zh-cn-in的支持设置.py通过add encoding=“utf-8”

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

推荐PyPI第三方库


热门话题
java文件路径中的java UTF8字符   java如何可靠地写入OPC UA服务器?   for-my-if语句中的java循环不能产生我想要的结果   java我如何在1个XSL中加入2个XML   macos无法在“/Library/Java/JavaVirtualMachines/jdk15.0.1.jdk/Contents/Home/bin/apt”中找到可执行文件   Java代码简单数学   java如何避免selenium中的sendKeys方法清除之前填充的文本?   java如何将PlacesAPI自动完成小部件传递到自定义对话框?   带有文本块的java Intellij json片段问题   启动时Spring启动错误:java。木卫一。IOException:jsse。别名\u否\u键\u项   移动文件时发生java异常   http Java Web客户端远程连接