如何从文本文件中获取代理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/