首页 > 编程知识 正文

qpython,python使用代理访问外网

时间:2023-05-03 08:48:03 阅读:28351 作者:577

导入JSON

导入telnet lib

导入请求

导入随机

#代理ip排迷路枫木/p proxy _ URL=' https://raw.github user content.com/fat E0/proxy list/master/proxy.list '

#糖小朋友害怕写严肃的乐曲ip代理池文件

IP _ pool _ file=' verified _ proxies.JSON '

#用于测试代理ip是否是朴素乐曲的网站

test_url='http://icanhazip.com/'

# user-agentydhmg/puser _ agents=[

' Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.1; SV1; 宏碁浏览器; NET CLR 1.1.4322; NET CLR 2.0.50727,

' Mozilla/5.0(windows; u; MSIE 9.0; Windows NT 9.0; en-US (',

' Mozilla/5.0(x11; u; Linux; en-US ) appleWebKit/527(khtml,like Gecko,Safari/419.3 ) Arora/0.6 ',

' Mozilla/5.0(windows; u; Windows NT 5.1; en-US; RV :1.8.1.2 pre (gecko/2007 02 15k-ninja/2.1.1 ',

' Mozilla/5.0(windows; u; Windows NT 5.1; zh-CN; rv:1.9 ) gecko/2008 07 05 Firefox/3.0 ka piko/3.0 ',

' Mozilla/5.0(x11; Linux i686; u; (Gecko/20070322 Kazehakase/0.4.5 )、

' Mozilla/5.0(x11; u; Linux i686; en-US; rv:1.9.0.8 )高兴的棒棒糖/1.9.0.8-1. fc 10 kaze hakase/0.5.6 ',

' Mozilla/5.0(windowsnt6.1; WOW64 ) appleWebKit/535.11(khtml,like Gecko ) chrome/17.0.963.56 safari/535.11 ',

' opera/9.80 (MAC OS; 英特尔MACOSx10.6.8; u; fr ) presto/2.9.168版本/11.52 ',

' Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.1; SV1; QQ下载732; NET4.0C; NET4.0E; ngdmf,

' Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.1; SV1; QQ下载732; NET4.0C; NET4.0E (、

' Mozilla/4.0 (兼容; MSIE 7.0; Windows NT 5.1; 三角/4.0; SV1; QQ下载732; NET4.0C; NET4.0E; 360SE ()、

' Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.1; SV1; QQ下载732; NET4.0C; NET4.0E (、

' Mozilla/5.0(windowsnt5.1 ) appleWebKit/537.1 ) khtml,like Gecko ) chrome/21.0.1180.89 safari/537.1 ',

' Mozilla/5.0(windowsnt6.1; WOW64 ) appleWebKit/537.1(khtml,like Gecko ) chrome/21.0.1180.89 safari/537.1 ',

' Mozilla/5.0(windowsnt6.1; 双赢64; x64; RV :2.0 b 13 pre (gecko/2011 03 07 Firefox/4.0b 13 pre )、

' Mozilla/5.0(x11; Ubuntu; Linux x86_64; rv:16.0 ) Gecko/20100101 Firefox/16.0 ',

' Mozilla/5.0(windowsnt6.1; WOW64 ) appleWebKit/537.11(khtml,like Gecko ) chrome/23.0.1271.64 safari/537.11 ',

' Mozilla/5.0(x11; u; Linux x86_64; zh-CN; RV :1.9.2.10 (gecko/2010 09 22 Ubuntu/10.10 (maverick ) Firefox/3.6.10 )、

#从IP站点获取所有代理IP

efget_proxy(proxy_URL ) :

response=requests.get (proxy _ URL )

proxy _ list=response.text.split ('n ' ) )。

for proxy_str in proxy_list:

proxy _ JSON=JSON.loads (proxy _ str )

host=proxy_json['host']

port=proxy_json['port']

ip_type=proxy_json['type']

check_and_save_IP(host,port,ip_type ) )。

#测试IP是否是严肃的乐曲,如果是严肃的乐曲,则保存在文件中

EFcheck_and_save_IP(IP,port,ip_type ) :

proxies={}

try:

#测试是否可用

telnet=telnetlib.telnet(IP,port=port,timeout=3) )。

except Exception:

打印(未连接) )。

else:

打印(连接的安全) )

proxies['type']=ip_type

proxies['host']=ip

proxies['port']=port

proxies _ JSON=JSON.dumps (proxies )

withopen(IP_pool_file,' a ' ) as fp:

FP.write(proxies_JSON'n ' ) ) )。

print ('已写入: %s ) %proxies ) ) )。

# uayydhmg/PDE fget _ request _ headers (随机获取:

headers={ random.choice (user _ agents ),

' accept ' : '文本/XML,APP/XHTML XML,APP/XML; q=0.9,*/*; q=0.8 ',

' Accept-Language': 'en-US,en; q=0.5 ',

'连接' : ' keep-alive ',

}

返回头

#这里只是测试

def use_proxy () :

proxies=[]

withopen(IP_pool_file,' r ' ) as fp:

while True:

if item:

# print (类型(JSON.loads ) item ) )

proxies.append(JSON.loads ) item ) )

else:

布雷克

# print (类型(代理[1] ) )

for item in proxies:

ip=item['host']

port=item['port']

#打印(IP,端口) )。

proxies_param={

' http': '%s:%s'%(ip,port )

}

打印(proxies _ param )是

try:

#发送请求,获取响应数据

response=requests.get(test_URL,headers=get_request_headers ),proxies=proxies_param,timeout=5)

if response.ok:

#将响应的json字符串转换为动人的声音

#DIC=JSON.loads(response.text )。

#print(DIC['Origin ' ) ]

打印(response.content )

except Exception as ex:

是打印(ex )

if __name__=='__main__':

#get_proxy(proxy_URL )是

use_proxy (

# RES=requests.get (http://icanhazip.com/),proxies={ ' http ' 3360 ' 167.99.145.18933603128 ' }

#打印(RES.content ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。