python 小白,爱好者 求教
用 shell 抓取到一组代理 IP 并另存为一个文本文件 xiciip.txt 中; 如:
183.129.153.122:36839
115.46.71.101:8123
222.191.233.74:36574
219.157.144.246:8118
121.31.163.225:8123
122.235.168.162:8118
119.31.210.170:7777
183.129.207.74:14823
116.62.134.173:9999
116.192.171.169:43928
115.46.77.208:8123
183.21.81.58:40539
120.92.74.237:3128
27.37.46.202:9000
120.92.74.189:3128
shell 没找到方法来测试确认代理 IP 是否可用,网上找一些 python 方法;
但网上的例子都是指定一个代理 IP 去测试;
我想用 python 按行读取代理 IP 与端口,然后用 for 循环逐行批量测试 ip 是否可用;
import requests
f = open("xiciip.txt")
line = f.readline() #读取一行,
for line in f :
try:
requests.get('http://bing.com/', proxies = {"http":"http://120.92.74.189:3128"} )
#这样是成功的,120.92.74.189:3128 可用
#我想把 120.92.74.189:3128 用 line 变量来替换,多次测试没成功;
except:
print ( "connect failed" )
else:
print ( "success" )
请高手指定一下,如何在 proxies = 后面加入 line 变量,我不知道哪里出问题了
尝试 1 把{}中的内容 做成一个变量
proxy = '"http":"http://'+line[:-1]+'"' #不知这样定义有无问题,对 shell 和 python 的符号使用很感冒
requests.get('http://bing.com/', proxies = {proxy} )
但不成功返回全是 failed
尝试 2
把 proxies = {"http":"http://120.92.74.189:3128"} 全定义为变量字符串
请大家帮助指教一下
如何引入变量 line "http":"http://120.92.74.189:3128"
解释一下这句语法意思,为什么会多个双引号,还有冒号的 proxies = {"http":"http://120.92.74.189:3128"}
谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.