數據爬蟲采集系統,python小爬蟲—獲取學校教務處成績

 2023-11-30 阅读 29 评论 0

摘要:開始想自己計算一下績點,所以第一個小爬蟲就從抓取自己成績開始 1.工具: chrome瀏覽器 vscode 2.先來分析一下學校教務處成績管理系統的結構,用的竟然是frame標簽!!首先是一個輸入學號的表單,找到表單后發現是一個post提交 這里是提交的數據 3.找

開始想自己計算一下績點,所以第一個小爬蟲就從抓取自己成績開始

1.工具: chrome瀏覽器 vscode
2.先來分析一下學校教務處成績管理系統的結構,用的竟然是frame標簽!!首先是一個輸入學號的表單,找到表單后發現是一個post提交
這里寫圖片描述
這里是提交的數據
這里寫圖片描述

3.找到這些模擬登陸就變得很容易了,下面貼代碼

import cgi
import cgitb
import json
import io
import pandas
import requests
from bs4 import BeautifulSoup
import jsonform=cgi.FieldStorage()
studentId=form.getvalue('id')def requestsData(url,headers,data):r=requests.post(url,headers=headers,data=data)return rdef htmlParser(r):soup=BeautifulSoup(r.text,'lxml')grades=soup.find_all('table')[3]tr_list=grades.find_all('tr')td=[tr.find_all('td') for tr in tr_list][1:]for data in td:a={"subject_id":data[1].text.lstrip('\xa0'),"subject_name":data[5].text.lstrip('\xa0'),"subject_xf":data[7].text.lstrip('\xa0'),"subject_grade":data[9].text.lstrip('\xa0')}yield(a)def fileWrite(data):for a in data:with open('file.txt','a',encoding='utf-8') as f:f.write(json.dumps(a,ensure_ascii=False)+'\n')f.close()def main():url='http://210.44.176.116/cjcx/zcjcx_list.php'headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36'}data={'post_xuehao':'學號'}html=requestsData(url,headers,data)fileWrite(htmlParser(html))main()
if __name__ == '__main__':main()

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/186541.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息