python - 如何从文本文件中获取代理ip和端口

标签 python python-2.7 websocket socks

如何从文本文件中获取代理IP和端口

代码:

import re , urllib , urllib2 , socks , socket
proxys  = open('IPs.txt', 'r')
links  = open('URs.txt', 'r')
#----
P = proxys.readlines()
E = links.readlines()
#----
nm = 0
#----
PROXY = P[nm]
#----
for links in E :
 Post = 'id='+ links
 cj = CookieJar()
 #----
 IP,PORT = PROXY.split(":")
 socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, IP, PORT)
 socket.socket = socks.socksocket
 #----
 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
 request = urllib2.Request('https://google.com/', Post)
 # ----------------- ++
 nm+=1
 PROXY = P[nm] 
# ----------------- ++

IP.txt:

96.47.156.166:10200
96.47.88.7:14328
97.88.243.210:24598
98.201.217.101:23320

此处错误:

PROXY = P[0] # = 96.47.156.166:10200 #from the text file 
IP,PORT = PROXY.split(":")

 socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "96.47.156.166", "10200")

我需要这样的工作:

 socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "96.47.156.166", 10200) #withot ""

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

最佳答案

您需要将PORT转换为int:

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, IP, int(PORT))

请注意,如果由于某种原因 PORT 无法转换,这将引发 ValueError,因此您可能需要捕获它。

根据文件的结构,PORT 很可能在末尾包含 '\n'。在尝试将其转换为 int 之前,您需要使用 strip 删除它。

try:
    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, IP, int(PORT.strip()))
except ValueError:
    print('Illegal port')

关于python - 如何从文本文件中获取代理ip和端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38976741/

相关文章:

python - Alembic:如何在不求助于 `alembic.op.execute` 的情况下在迁移脚本中添加新的枚举类型

python-2.7 - 在特定文件上测试 NLTK 分类器

python - 如何从 Python 中的 csv 文件生成 JSON?

javascript - Edi-Cam 使用 Intel Edison 流式传输视频 需要帮助

python - 树莓派MYSQL数据库异常

python - 如何查询多对多SQLAlchemy

python - 如何找到每个组的第一个局部最大值?

python - 如何使用 ImageGrid 向颜色栏添加标签?

java - Websocket 客户端无法部署到 Glassfish

c++ - Boost websocket 接受挂起