python ip代理池(Python 实现域名解析为ip的方法)
类别:脚本大全 浏览量:1303
时间:2022-04-02 10:51:53 python ip代理池
Python 实现域名解析为ip的方法今天得了一批域名,需要把域名解析成ip
因为量比较大所以采用了多进程和队列的方式
|
from multiprocessing import Process,Queue,Pool import socket import multiprocessing import os #写入文件 def write(q,lock,filename): while not q.empty(): url = q.get() print (url) try : ip = socket.gethostbyname(url) except : ip = "unknow" print (ip) with open (filename, 'a+' ) as f: lock.acquire() #加锁防止多个进程写入会混乱 try : f.write(url + " " + ip + "\n" ) finally : lock.release() #添加到队列 def readurl(q,n): with open ( str (n) + '.txt' , 'r' ) as f: lines = f.readlines() for line in lines: q.put(line.strip()) return q #根据进程进行拆分txt def multi(urllist,n): with open (urllist, 'r' ) as f: lines = f.readlines() line = int ( len (lines) / n) print (line) for m in range ( 0 ,n): with open ( str (m) + '.txt' , 'a+' ) as f1: for i in range (line * m,line * (m + 1 )): f1.write(lines[i]) #删除拆分的txt文件 def remove(n): for i in range ( 0 ,n): os.remove( str (i) + '.txt' ) print ( "######清除临时文件######" ) if __name__ = = "__main__" : manager = multiprocessing.Manager() q = manager.Queue() lock = manager.Lock() m = 5 #设置扫描进程数 urllist = "url.txt" #待解析的url filename = "test.txt" #结果保存的文件名 multi(urllist,m) p = Pool(m) for i in range (m): p.apply_async(write,args = (readurl(q,i),lock,filename)) p.close() p.join() remove(m) print ( "#######全部文件采集完成########" ) |
以上这篇Python 实现域名解析为ip的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/qq1124794084/article/details/80534678
您可能感兴趣
- pythonhttp文件服务器(使用Python创建简单的HTTP服务器的方法步骤)
- python开启两个线程(Python开启线程,在函数中开线程的实例)
- python爬虫爬取知乎(详解用python写网络爬虫-爬取新浪微博评论)
- python获取日期(Python根据当前日期取去年同星期日期)
- pythontkinter循环显示文本(Python实现定时自动关闭的tkinter窗口方法)
- 怎么用python分析足球(使用Python进行体育竞技分析预测球队成绩)
- python中什么是迭代器(一篇文章彻底搞懂Python中可迭代Iterable、迭代器Iterator与生成器Generator的概)
- python多进程创建细节(Python实现多进程的四种方式)
- python改变图片的色深设置(Python实现去除图片中指定颜色的像素功能示例)
- python plot绘图(python使用Plotly绘图工具绘制气泡图)
- 怎么用python获取目录(python 获得任意路径下的文件及其根目录的方法)
- pycharm怎么创建django项目(Python、 Pycharm、Django安装详细教程图文)
- python线程池如何实现同步(Python mutiprocessing多线程池pool操作示例)
- 使用python制作游戏(python制作填词游戏步骤详解)
- python读写文件实验心得(Python文件读写常见用法总结)
- python继承重写构造函数(Python子类继承父类构造函数详解)
- 十二星座爱情支配欲指数(十二星座爱情支配欲指数)
- 虐待儿童是发泄支配欲的愚蠢行为(虐待儿童是发泄支配欲的愚蠢行为)
- 你或许不知道你隐藏的支配欲望(你或许不知道你隐藏的支配欲望)
- 把宽体丰田86卖了,换成7.5代高尔夫GTI玩起姿态与性能并存的改装(把宽体丰田86卖了)
- 大众推出了第五代高尔夫GT(大众推出了第五代高尔夫GT)
- 换代在即,现在是抄底 7.5代 高尔夫的最佳时机吗(换代在即现在是抄底)
热门推荐
- dedecms关闭站点(dedecms 会员登录或者退出直接跳转到首页的修改方法)
- 阿里云服务器安全组在哪(阿里云服务器安全组设置规则)
- CSS filter:hue-rotate色调旋转滤镜实现按钮批量生产(CSS filter:hue-rotate色调旋转滤镜实现按钮批量生产)
- python装饰器怎么设置(深入了解和应用Python 装饰器 @decorator)
- python微信支付接口(Python提取支付宝和微信支付二维码的示例代码)
- mysql的binlog几种模式(MySQL系列之redo log、undo log和binlog详解)
- vue实现一个炫酷的日历组件(vue利用Moment插件格式化时间的实例代码)
- 从宝塔面板找网站会员数据(BT宝塔面板高并发大流量网站优化方案分享)
- vmware使用教程win10(VMware Workstation安装并安装WIN10操作系统连接外网步骤指导超详细教程)
- cubeide调试问题(如何使用宝塔安装ionCube扩展)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9