模擬登陸 Python

模擬登陸 Python

from my wp blog

OOP老師有個網(wǎng)站,用于發(fā)布課件和布置提交作業(yè),截止后作業(yè)都放在網(wǎng)上供學(xué)生下載

我浙大牛不少,把程序抓出來研究一下源碼

模擬登陸

  • 關(guān)于網(wǎng)站
    • 木有驗(yàn)證碼
      • 無需輸入
      • 無需識別
    • 下載文件與絕對url無關(guān),需要先訪問一個頁面,然后才能下載
      • 可能是headers的refer
    • 學(xué)生代碼格式不統(tǒng)一
      • .cpp
      • .zip
      • .rar
      • .tar.gz

引入幾個庫,偽造表單數(shù)據(jù)

import urllib
import urllib2
import cookielib
 
auth_url = 'http://fm.zju.edu.cn/login.php'
data = {
    'user' : setting.user,
    'passwd' : setting.passwd,
}
postData = urllib.urlencode(data) #把數(shù)據(jù)編碼為url格式

cookie管理

cookieJar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))

偽造請求頭

headers = {
    'Host' : setting.host,
    'Referer' : setting.referer,
}
req = urllib2.Request(auth_url, postData, headers)
req.add_header('User-Agent', setting.user_agent) #ua加入更健康
result = opener.open(req) #響應(yīng)頭和內(nèi)容

查看result數(shù)據(jù),發(fā)現(xiàn)已經(jīng)登陸

先訪問一個頁面,然后在這個頁面中下載代碼文件

assign_url = 'http://fm.zju.edu.cn/showProblem.php?cid=**&pid=**'
result = opener.open(assign_url)
file_url = 'http://fm.zju.edu.cn/dls.php?cid=**&id='
for id in range(0, 150):
    result = opener.open(file_url+str(id))

這個時候代碼文件已經(jīng)下載,所需要做的是給一個文件名

在響應(yīng)頭里面可以找到一些東西,用正則可以抓出文件名,然后文件寫入保存

import re
filenameRe = re.compile(r'^.*filename=(.+)$')
...
...
    filename = '100/' + str(id) + '_'+ filename
    outfile = open(filename, 'wb')
    outfile.write(result.read())
    outfile.close()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,893評論 25 709
  • 人生做減法,維護(hù)好個人名片+做好自己專業(yè)=成功。 1.包括個人形象、名聲,社會關(guān)系網(wǎng) 2.成為本專業(yè)專家 其他的娛...
    厘米元滿閱讀 404評論 0 0
  • Teacher's Day I express great gratitude and thanks with m...
    享悅moonlight閱讀 406評論 0 0

友情鏈接更多精彩內(nèi)容