Python代理+线程+进程+socket(Python 线程)

网友投稿 247 2022-08-29


Python代理+线程+进程+socket(Python 线程)

#coding=utf-8#作者:ewang#版本:2.7#功能描述:编写python版本,对特定的网站,获取相关的json值import socket import thread import urlparse import selectimport threadingimport reimport json import multiprocessingBUFLEN=8192class Proxy(object): def __init__(self,conn,addr): self.source=conn self.request="" self.Json="" self.Jrespone="" self.destnation=socket.socket(socket.AF_INET,socket.SOCK_STREAM) self.run() def get_headers(self): header='' while True: header+=self.source.recv(BUFLEN) index=header.find('\n') if index >0: break self.request=header[index+1:] def conn_destnation(self): ip=socket.gethostbyname("要获取数据的页面") self.destnation.connect_ex((ip,80)) data="%s %s %s\r\n" %("POST","URL","HTTP/1.1") self.destnation.send(data+self.request) item=re.findall('\"props\"\s*:(.+})\,',self.request,re.S) item=item[0].replace(" ","") #对json文件编码 Jdumps=json.dumps(item,sort_keys=True) #对json文件解码 Jrespone=json.loads(Jdumps) json_respone=json.loads(item) self.Json=json_respone self.Jrespone=Jrespone if self.Json["appName"]=="event": print self.Jrespone def run(self): self.get_headers() self.conn_destnation() class Server(object): def __init__(self,host,port): self.server=socket.socket(socket.AF_INET,socket.SOCK_STREAM) self.server.bind((host,port)) self.server.listen(5) self.start() def start(self): while True: try: conn,addr=self.server.accept() thread.start_new_thread(Proxy(conn,addr),()) except: pass if __name__=='__main__': print u"服务器IP:", serverIp=str(raw_input()) print u"服务器端口号:", serverPort=int(raw_input()) print u"开始获取数据........" p = multiprocessing.Process(target = Server, args = (serverIp,serverPort)) p.start()

该脚本是为了针对数据测试中,提高工作效率,针对特定于网页来进行json数据的获取,通过json数据与预期的json数据进行比对。 代码中的“URL”是特定网站的URL,可以根据需求进行改动,可以把之前的代码与此相结合,来达到自己的需求。为使代码运行快,采用线程和进程来提高运行速度


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【python黑帽子2】netcat.py编写及使用说明
下一篇:java实现后台处理base64图片还原为文件
相关文章

 发表评论

暂时没有评论,来抢沙发吧~