python简单爬虫手机号_Python爬虫:大家用公共的手机号干了啥?

说明:本文所提供的思路和代码都只用于个人测试研究之用,并未对目标网站造成实质性干扰,而且全部细节已经全部告知网站开发者,也请大家不要用于恶意用途。

在我的微信公众号“免费的临时手机号,用这些公用的手机号你可以注册一些好玩的(或者你懂的)网站和APP,而不用担心个人信息的泄露。免费临时手机号,告别垃圾短信骚扰!​mp.weixin.qq.com

这个网站的域名是:

有了这些临时手机号,你就可以:对于需要注册才可以下载资料的论坛,就用临时手机号注册一下,用完即走,完全不用担心个人手机号的泄露。

需要填手机号才可以领取资料什么的,就可以用临时手机号来验证,领取资料之后就不会收到商家的电话回访啦~

很多的网站或者APP不支持注销账号,这时就可以将绑定的手机号换成临时手机号,同时别忘了把密码也改掉,清空里面的全部痕迹,从此这个账号与自己再无瓜葛。

有了这些匿名的公共手机号,广大网友都会用来干什么呢?

随便点开一个手机号的短信接收页面,可以看到有来自各个来源的短信验证码。我们可以很容易看到这个手机号已经注册了哪些网站和APP,然后使用手机验证码方式即可登录这些网站或者APP,说不定还可以看到非常多有趣的内容哟。

令我吃惊的是,这一个手机号的短信条数居然有两万三千多页,每一页10条的话,就有 23 万多条的短信,整个网站有那么多手机号,服务器上面应该存储了海量的短信。强烈建议网站开发者可以把很久之前的记录删除,只保留最近几天的,这样一方面可以缓解服务器压力,也可以避免某些无聊的人(例如我?)用爬虫爬数据玩啥的,哈哈~

没错!为了看看大家都用这个手机号注册了哪些网站或者APP,我用 Python 写了一个爬虫脚本,自动翻页抓取了一些短信内容,然后解析出其中信息来源(一般就是第一个大括号【】里面的内容),分析一下频次,说不定还可以找到一些没有听过的网站或者APP,哈哈。

下面就是完整的代码,有一些注释,看懂无压力:

# 自动抓取云短信网页上的验证码短信并分析来源

# Tsing 2019.03.21

# https://zhuanlan.zhihu.com/tsing

import re

import time

import requests

from bs4 import BeautifulSoup

def get_page_info(link, f):

header={ # 伪造 headers

'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36',

'Referer':'https://www.pdflibr.com',

}

r = requests.get(link, headers=header)

soup = BeautifulSoup(r.content, "html.parser")

table = soup.find_all("div", class_="sms-content-table") # 有两个 sms-content-table 的 table,第一个是最新的4条信息,第二个是全部的信息。

infos = table[1].select('tbody tr')

for info in infos:

content = info.find_all("td")[2].text[1:-1] # 首尾各去掉空格,这就是每一条短信的内容啦,可以写入文件里面哈。

print(content)

print("-"*30)

from_name = re.match(r'【(.*?)】', content) # 第一个大括号里面一般就是来源名称,采用(.*?)进行最短匹配,不然默认的(.*)是贪婪匹配。

if(from_name):

from_name = from_name.group(0)[1:-1] # 去掉首尾的大括号【】

# print(from_name)

f.write(from_name + '\n') # 逐行写入txt文档,其实也可以不用写入文件,这里主要是方便自己查看。

def sort_result(filename):

result = [] # 逐行读取文本文档中的来源名称,生成list

with open(filename,'r') as f:

for line in f:

result.append(line.strip('\n').split(',')[0])

name_count = {} # 定义一个元组,键名为list中的元素,键值为出现的次数

for i in set(result): # set 用于去除重复元素。

name_count[i] = result.count(i)

sorted_dict = sorted(name_count.items(), key=lambda d:d[1], reverse = True) # 按照键值对 Dict 进行从大到小排序。

for item in sorted_dict:

print(item[0] + ': ' + str(item[1]))

if __name__ == '__main__':

filename = "info.txt" # 指定一个文本文件保存数据

f = open(filename,'w')

for i in range(1,101): # 自动翻页,这里可以设定需要抓取多少页(示例是100页)

print("\n第%s页\n" % i)

link = "https://www.pdflibr.com/SMSContent/1?page=" + str(i)

get_page_info(link, f)

time.sleep(4) # 不要频率太快,不然容易被封IP

f.close()

print('\r\n各个来源出现的频次分别为:\r\n')

sort_result(filename)

作为测试,我只抓取了某个手机号的前 100 页的短信,而且每次抓取都间隔了 4 秒,主要是不想给对方的服务器增加太大压力,也避免自己被封 IP。而且网站的开发者最近也在研究反爬虫技术,所以大家看看就好,不要自己运行脚本哈。

好,代码运行起来!可以看到所有的短信都显示出来啦~

最后,直接输出了各个来源出现的频次,居然有人用这个点饿了么外卖?大家可以通过手机验证码登录看看,这个(些)人都点了哪些地方的外卖,哈哈~

还出现了【小姐姐】、【SoulAPP】、【珍爱网】、【Mua】这些看名字就知道是干什么的来源,大家也可以登录去看看,说不定有很多发现哟。

最后说一句,这个网站是真的非常良心!目前,我已经联系了网站的开发者黄兵,并把这篇文章发给了他,公开技术是为了他更好地防御,希望他可以重视一下这种爬虫其实对网站也是有很大威胁的,然后做出相应的反制措施。最后祝这个网站越来越好,一直办下去~

也欢迎给该站点的开发者打赏支持,作者会购更多的手机卡来满足更多人的需求。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值