鱼C论坛

 找回密码
 立即注册
查看: 2735|回复: 1

[已解决]关于代理ip如何打印成字典的问题

[复制链接]
发表于 2021-6-20 15:47:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我找到了个网站,然后通过一些方法,成功将网站中给出的代理ip与端口做了导出。
然而现在有个问题,python中的urllib.request.ProxyHandler方法要求的是个字典
而该字典的键值都必须为协议值,也类似http或者https这样的值。

我最开始尝试先做了一个包含所有ip+端口的列表,然后又做了一个包含了同ip的那个列表长度一致的另一个列表,该列表里边都是字符串'http'
之后我尝试用zip将以上两个列表做合并,转化为字典
结果失败了,只返回了一个字典项,其他的所有项都消失了。
我思考了一下应该是因为字典中所有的键值都是一样的所导致的。
接下来我改变了方法,不再尝试导出一个字典,而是导出一个看起来很像字典的字符串
  1. >>> get_ip()
  2. '{"http":"125.87.95.175:3256"},{"http":"117.69.63.128:9999"},{"http":"223.215.10.109:9999"},{"http":"175.42.68.98:9999"},{"http":"115.219.2.10:3256"},{"http":"175.42.129.32:9999"},{"http":"60.174.191.152:9999"},{"http":"117.65.1.58:3256"},{"http":"113.120.62.59:9999"},{"http":"117.94.157.144:9999"},{"http":"171.35.149.115:9999"},{"http":"114.101.253.109:9999"},{"http":"114.101.250.142:9999"},{"http":"42.7.31.127:9999"},{"http":"175.7.199.118:3256"},{"http":"175.7.199.118:3256"},{"http":"223.244.179.144:3256"},{"http":"117.65.14.211:9999"},{"http":"223.243.173.52:9999"},{"http":"117.65.47.77:9999"},{"http":"114.239.110.51:3000"},{"http":"223.242.108.81:9999"},{"http":"60.168.207.168:1133"},{"http":"60.195.206.101:80"},{"http":"113.121.79.122:9999"},{"http":"123.169.96.36:9999"},{"http":"114.233.135.182:9999"},{"http":"113.120.39.176:9999"},{"http":"113.195.201.155:9999"},{"http":"114.239.3.99:9999"}'
复制代码

这次成功了。理论上只要我手动将这串字符串复制到需要填代理的地方就可以了。

可是这个方法看起来感觉很不智能。所以我想问问,有没有什么办法,让我可以直接导出一个键值完全相同的字典?再或者有没有什么办法,可以把上边这个很像字典的字符串,给改成字典?
我试了下如果用一个变量直接等于,就像下边这样
  1. >>> dict1={"http":"125.87.95.175:3256"},{"http":"117.69.63.128:9999"},{"http":"223.215.10.109:9999"},{"http":"175.42.68.98:9999"},{"http":"115.219.2.10:3256"},{"http":"175.42.129.32:9999"},{"http":"60.174.191.152:9999"},{"http":"117.65.1.58:3256"},{"http":"113.120.62.59:9999"},{"http":"117.94.157.144:9999"},{"http":"171.35.149.115:9999"},{"http":"114.101.253.109:9999"},{"http":"114.101.250.142:9999"},{"http":"42.7.31.127:9999"},{"http":"175.7.199.118:3256"},{"http":"175.7.199.118:3256"},{"http":"223.244.179.144:3256"},{"http":"117.65.14.211:9999"},{"http":"223.243.173.52:9999"},{"http":"117.65.47.77:9999"},{"http":"114.239.110.51:3000"},{"http":"223.242.108.81:9999"},{"http":"60.168.207.168:1133"},{"http":"60.195.206.101:80"},{"http":"113.121.79.122:9999"},{"http":"123.169.96.36:9999"},{"http":"114.233.135.182:9999"},{"http":"113.120.39.176:9999"},{"http":"113.195.201.155:9999"},{"http":"114.239.3.99:9999"}
  2. >>> dict1
  3. ({'http': '125.87.95.175:3256'}, {'http': '117.69.63.128:9999'}, {'http': '223.215.10.109:9999'}, {'http': '175.42.68.98:9999'}, {'http': '115.219.2.10:3256'}, {'http': '175.42.129.32:9999'}, {'http': '60.174.191.152:9999'}, {'http': '117.65.1.58:3256'}, {'http': '113.120.62.59:9999'}, {'http': '117.94.157.144:9999'}, {'http': '171.35.149.115:9999'}, {'http': '114.101.253.109:9999'}, {'http': '114.101.250.142:9999'}, {'http': '42.7.31.127:9999'}, {'http': '175.7.199.118:3256'}, {'http': '175.7.199.118:3256'}, {'http': '223.244.179.144:3256'}, {'http': '117.65.14.211:9999'}, {'http': '223.243.173.52:9999'}, {'http': '117.65.47.77:9999'}, {'http': '114.239.110.51:3000'}, {'http': '223.242.108.81:9999'}, {'http': '60.168.207.168:1133'}, {'http': '60.195.206.101:80'}, {'http': '113.121.79.122:9999'}, {'http': '123.169.96.36:9999'}, {'http': '114.233.135.182:9999'}, {'http': '113.120.39.176:9999'}, {'http': '113.195.201.155:9999'}, {'http': '114.239.3.99:9999'})
复制代码

我还是可以得到一个键值都完全相同的字典的。但是我实在不知道,怎么自动将这个步骤完成。希望大家可以帮下我
最佳答案
2021-6-20 15:53:12
本帖最后由 逃兵 于 2021-6-20 15:57 编辑

做成元组

  1. ip_tuple = eval(get_ip())
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-20 15:53:12 | 显示全部楼层    本楼为最佳答案   
本帖最后由 逃兵 于 2021-6-20 15:57 编辑

做成元组

  1. ip_tuple = eval(get_ip())
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 16:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表