用 requests 测试代理 IP 失败了,求助!

2018-07-21 18:39:29 +08:00
 h19981126g
ips.csv 是已经保存了形如 118.31.220.3:8080 的 IP 列表
用 requests 测试代理 IP 是否可用输出总是把原 IP 列表又输出了一遍!真心求助!

IPpools = []
with open('ips.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
testip = [row[1] for row in reader]

for rows in testip:
proxy = 'http://'+rows
proxies = {"http": proxy}
try:
html = requests.get('https://www.baidu.com', proxies=proxies)
if html.status_code == 200:
IPpools.append(proxy)
except Exception as e:
continue

print(IPpools)
4958 次点击
所在节点    Python
21 条回复
zhengxiaowai
2018-07-21 19:06:03 +08:00
proxy = 'http://'+rows -> proxy = 'https://'+rows
ysc3839
2018-07-21 19:11:55 +08:00
你想表达什么?“原 IP 列表”指的是什么?
sola97
2018-07-21 19:26:53 +08:00
请求百度用的 https,proxies = {"http": proxy} 代理 http,当然不匹配
ysc3839
2018-07-21 19:33:28 +08:00
h19981126g
2018-07-21 19:38:07 +08:00
我的 ip 的列表有 https 和 http,一般怎么处理好?
h19981126g
2018-07-21 19:38:30 +08:00
@sola97 我的 ip 的列表有 https 和 http,一般怎么处理好?
h19981126g
2018-07-21 19:40:49 +08:00
@ysc3839 proxies 我看过文档是怎么写的,就是问数组里的 ip 怎样变成参考里带引号能用的样子
ysc3839
2018-07-21 19:47:22 +08:00
@h19981126g 你的 csv 是怎样的?发来看看。
also24
2018-07-21 19:48:28 +08:00
@h19981126g #7 你 5 楼的问题,在 4 楼给出的链接里有答案
h19981126g
2018-07-21 19:50:13 +08:00
@also24 就是看过了还不知道怎么解决 才来问的。
golmic
2018-07-21 19:52:35 +08:00
@h19981126g 直接 proxy=("all":row) 换成大括号
also24
2018-07-21 19:52:57 +08:00
@h19981126g #10
4 楼的链接,点进去以后锚点直接定位在这里,结合 3 楼说的思考一下
golmic
2018-07-21 19:53:04 +08:00
row 加一下 http 或者 https 协议头
h19981126g
2018-07-21 19:56:53 +08:00
@ysc3839 不用管 csv 是怎么样的,我设置读到 python 里就是个数组,就是解决 requests 代理从数组中读取地址,和 https 的问题
http://i4.bvimg.com/653190/d2ca3f32af5b6288.jpg
http://i4.bvimg.com/653190/67387ae897763b8d.jpg
ysc3839
2018-07-21 20:01:53 +08:00
@h19981126g 你 csv 里面都没记录代理服务器是 http 还是 https,那没办法处理啊?
h19981126g
2018-07-21 20:12:19 +08:00
我有办法爬到,只是现在没爬
h19981126g
2018-07-21 20:51:07 +08:00
@ysc3839 我有办法爬到,只是现在没爬
ysc3839
2018-07-21 20:59:38 +08:00
@h19981126g 那你爬的时候把完整 URL 写进 csv 就好了。
also24
2018-07-21 22:38:40 +08:00
骑了一圈儿车回来,楼主是还没找到方法嘛?

试试把 proxies = {"http": proxy}

改成 proxies = {"http": proxy, "https":proxy,} 会怎样 🙄
kismetX
2018-07-21 22:43:05 +08:00
@also24 没错,是要这样子的,我之前单用 http 或 https 也没用,后来改成两都配,就 OK 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/472951

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX