zoukankan      html  css  js  c++  java
  • python代理检测

    import socket,threading,os,sys,queue,re
    socket.setdefaulttimeout(5)
    path=sys.path[0]
    if os.path.isfile(path):
        path=os.path.split(path)[0]

            

    domain='www.baidu.com'
    que=queue.Queue()
    tno=20
    a=open(path+r'proxy.txt').read().strip().split()
    for i in a:
        que.put(i.split(':'))
        

    data='''GET http://www.baidu.com/ HTTP/1.1
    Host: www.baidu.com
    User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.46 Safari/535.11
    Accept: */*
    Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3

    '''


    def geturl():
        while True:
            if que.empty():
                return False
            proxy,port=que.get(timeout=1)
            try:
                s=socket.socket()
                s.connect((proxy,int(port)))
                s.send(data.encode())
                da=s.recv(1024).decode('utf8','ignore')
                if '200 OK' in da:
                    open(path+r'proxyok.txt','at').write(proxy+':'+port+' ')
                    print(proxy+':'+port,'可用')
            except Exception as err:
                print(proxy,port,err)
                print(proxy,port,err,file=open(path+r'err.txt','at'))
                pass
            finally:
                s.close()

    for i in range(tno):
        threading.Thread(target=geturl).start()
  • 相关阅读:
    通用XML读写和配置(二)
    C++多态中的VPTR
    如何查看Linux操作系统的位数?
    另类获取ORACLE导入导出(imp/exp)数据的进度信息
    成熟是明亮而不刺眼的光辉
    C/C++预处理运算符
    系统设计与规划一点总结
    Linux 任务计划之crontab命令
    linux挂载磁盘阵列
    Linux下JDK的中文显示
  • 原文地址:https://www.cnblogs.com/jackyshan/p/3545524.html
Copyright © 2011-2022 走看看