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