import os
import time
import threading
import urllib.request
def message(msg):
print(time.strftime('[%H:%M:%S]'), msg)
def check(proxy):
proxy_support = urllib.request.ProxyHandler({'https':proxy})
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)
message("Trying => "+proxy)
try:
urllib.request.urlopen("https://www.google.com", timeout=5)
print("Working")
with open("CheckedProxies.txt", "a") as appe:
appe.write(proxy.replace("\n","") + "\n")
except:
print("Not Working")
pass
try:
proxies = open("/home/zion/Desktop/proxies.txt", "r").readlines()
except:
message("File Empty Exiting!")
exit()
if proxies == "":
print("File Empty, Enter Proxies")
newtxt = open("CheckedProxies.txt","w")
message("~ Loading "+ str(len(proxies)) +" Proxies!")
time.sleep(1)
for proxy in proxies:
check(proxy)
os.exit(CTRL-C)
message("Done Checking Proxies!")
我正在尝试将“不工作”打印在与尝试代理相同的行上......我当前的输出是:
[23:20:51] ~ Loading 1598 Proxies!
[23:20:52] Trying => 1.0.135.34:8080
Not Working [23:20:53] Trying => 1.10.236.214:8080
Not Working [23:20:53] Trying => 103.122.255.18:8080
我正在尝试让它像这样打印
[23:20:53] Trying => 127.0.0.1:8080 Not Working!
我尝试过“打印(“不工作”,end='')” 但打印出来是这样的``
Not Working[23:07:30] Trying => 1.10.236.214:8080
我不知道如何在尝试和代理后打印“不工作”......
我也在尝试学习如何使用线程模块,但遇到了麻烦...... 我希望我的程序打开多个线程来测试我的代理...提前感谢您的帮助。
最佳答案
关于线程,最好的方法是使用多处理池。
from multiprocessing import Pool
然后代替:
for proxy in proxies:
check(proxy)
用途:
p=Pool(5)
p.map(check,proxies)
为了将它们全部放在一行上,我会将输出添加到一个字符串中,然后在函数末尾将其打印出来。
关于Python 3 在同一行打印 try 语句的输出,我正在尝试学习线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59135693/