经产观察
IT资讯
IT产业动态
业界
网站运营
站长资讯
互联网
国际互联网新闻
国内互联网新闻
通信行业
通信设备
通信运营商
消费电子
数码
家电
站长资讯

听说注册牛逼的域名能赚钱我用Python写了百行代码来分析

作者:habao 来源: 日期:2018-10-8 8:59:40 人气:

  前面我们玩了一个Python加密的黑科技(还在担心酒店信息泄露,我用Python写了段加密算法,看你怎么破),今天我们来玩一个更有意思的小案例!大家都知道注册域名,尤其是牛逼的域名抢先注册可以赚钱,尤其是位数比较小的,3位,4位,5位的域名!既然我们玩Python,不如动手写一段代码来分析百万个域名,看看有没有捡漏的机会!

  为了简单示例,我们用纯4位数的字母来演示一下我们的程序思想!大家可以扩展到6位字母,或者6-8字母和数字组合的域名等等!

  域名大部分都是字母开头的,我们这里先从26个字母里面随机挑4个字母,然后进行全排列!这个对Python来说,soeasy,2-3行代码搞定!

  用Python里面的itertools这个模块,Python里面有很多牛逼的模块itertools是比较酷的一个。利用itertools里面的permutations进行全排列。因为是域名我们需要加上前缀。当然也可以扩展到p>

  2).把组合字母存入文件

  运行一个26个字母的全排列常消耗时间的,我们这里取4个字母,如果是取6个,8个会很慢!所以一定要珍惜每一次运行的结果,我们把结果存入文件,方便下一读取。

  一个写文件,一个读文件,为了存方便,我们在每一个域名后面加了换行符\n。所以在读的时候,我们要去掉换行符。

  如果是5位字母随机全排列域名大概是多少,一共有780万多种组合,大概耗时50秒。如果再加上1个字母或者数字,都是百万级别的数据,产生百万域名的地址大概2分钟不到!

  这么多域名我们肯定不可能一一去访问,我们用最简单爬虫去访问一下它们的首页,如果长度大于0,证明这个网站是存在的。这么大规模的频繁访问,肯定是用Python里面的并发了。

  Python里面的并发有很多种套,这里我选择gevent,这是轻量级的协程访问,而且帮你封装好了,访问百万级别的量,还是很轻松的!

  用gevent的spawn函数绑定一个需要多任务执行的函数地址和对应的传入的参数接着我们用joinall等待前面执行的事件结束即可,会返回一个微协程的结果result最后用result里面的get函数获取网页地址和对应的长度3).启动百万域名查询

  requests不能直接并发,需要用猴子补丁importgevent.monkey。而且为了防止一次并发太多,我们把每次请求的域名进行分段,一次请求20个域名!

  我设置了4个字母的随机排列,大概35万个域名,运行了3分钟,结果让我大吃一惊,竟然很多网站都没有被注册,属牛的今年多大当然也有可能是request请求的时候没有加header,或者判断status_code。(为了代码的正确性,我加了一个abcd123和淘宝的域名测试一下)

  今天的文章分享到此结束,希望本次分享对正在学习Python的你有所帮助,文章部分素材来源网络,如有侵权,请联系删除。

  我做开发几年的时间,如果大家对于学习Python的学习方法,学习线以及:是自学还是培训的疑问,都可以随时来问我。

  

推荐文章