啥都不说,直入正题。

思路:分析请求地址——解决登陆问题——获取页面后筛选有用信息——优化相关算法

一、分析请求地址

通过分析教务处官网,发现请求URL为http://run.hbut.edu.cn/StuGrade/Index

并且得到了登陆时所需要post的表单数据。

二、登陆

通过requests模拟请求,其中验证码部分需要定向到生成验证码的url,发现url对应的是一个图片文件,因此我选择直接利用open在本地新建一个图片文件,利用write写入,人工输入验证码。

其中部分代码如下:

captcha = requests.get('http://run.hbut.edu.cn/Account/GetValidateCode', headers=headers)
result = captcha.content
fn = open('F:\hugongda.jpg','wb')
fn.write(result)
fn.close()
def login():
    data = {'isRemember': '1','Password': 'XXXXXXXX','Role': 'Student','UserName': '1510821209','ValidateCode': input('请输入验证码:')}response = requests.post('http://run.hbut.edu.cn/Account/LogOn', data=data, headers=headers)

三、筛选有用信息

在对response对象进行分析之后,发现页面源代码很难使用正则表达式(其实是自身能力不足的缘故...)筛选出所需字符串,因此这里我们采用了BeautifulSoup模块:

grade = requests.get('http://run.hbut.edu.cn/StuGrade/Index',headers=headersgrade)
soup = BeautifulSoup(grade.text,"html.parser")
print(soup.h2.string)
for i in soup.find_all("td"):
    print(i.get_text().replace(' ','').replace('不允许报名','').replace('已公布','').replace('已评教','').replace('\n',''))

强行使用replace,毕竟新手不知道怎么做,但是目的达到了。

四、优化算法

对data{}中的类似于Student和Password进行了处理,使每个学生都可以输入自己的学号和密码进行登陆。

但是还有一个问题,每个人在登陆的时候都必须自己在相应文件夹创建对应的用来存放验证码的hugongda.jpg文件,很麻烦,不知道怎么解决。

晒一下运行结果:

有待完善。

第一个爬虫(爬一下湖北工业大学教务处成绩)相关推荐

  1. 【Grades Crawler】利用python编写爬虫 爬取西电教务处成绩并本地保存

    Grades Crawler 项目介绍 由于教务处成绩不易自己打印,故编写爬虫Grades Crawler, 其可以将自己的(需要合法的学生帐号信息)教务处成绩爬取下来,并本地保存为excel格式或直 ...

  2. Python项目之我的第一个爬虫----爬取豆瓣图书网,统计图书数量

    今天,花了一个晚上的时间边学边做,搞出了我的第一个爬虫.学习Python有两个月了,期间断断续续,但是始终放弃,今天搞了一个小项目,有种丰收的喜悦.废话不说了,直接附上我的全部代码. 1 # -*- ...

  3. append从一个添加到另一_真特么激动第一个爬虫----爬取豆瓣电影top250

    养成习惯,先赞后看!!! 前言 之前一直对爬虫有兴趣,但是一直没有真正静下心来去好好学习过,这一段时间跟着b站上的一个教程做了自己人生中第一个爬虫程序,还是很有成就感的. 准备工作 1. 我们爬取一个 ...

  4. 真特么激动第一个爬虫----爬取豆瓣电影top250

    养成习惯,先赞后看!!! 目录 前言 准备工作 爬虫 分析网页信息 利用正则表达式抓取有有用信息 简单的清洗数据 存储数据 网页模板制作 表格化展示爬虫得到的数据 echarts数据可视化 wordc ...

  5. 第一个爬虫-爬取搜狗的一整张网页

    爬取搜狗的一整张网页 import requests url='https://www.sogou.com/' response= requests.get(url=url) page_text =r ...

  6. 四小时学python爬虫爬取信息系列(第一天)

    四小时学python爬虫爬取信息系列(第一天)(全是干货) 1.安装requests库(可以在电脑python,我是进入anaconda我建的虚拟环境) anaconda虚拟环境法流程: conda ...

  7. python爬虫从入门到实战笔记——第一章爬虫原理和数据爬取

    爬虫原理和数据抓取 1.1 通用爬虫和聚焦爬虫 通用爬虫 聚焦爬虫 1.2 HTTP和HTTPS HTTP的请求与响应 浏览器发送HTTP请求的过程: 客户端HTTP请求 请求方法 常用的请求报头 服 ...

  8. python爬虫进阶-每日一学(字体反爬-移花接木)

    目的 分析与学习更多的字体反爬套路 详细需求 url:http://glidedsky.com/level/web/crawler-font-puzzle-2 思路解析 一.审查 二.分析 impor ...

  9. 第一个爬虫程序之定向爬取中国大学排名(收获良多,不仅仅是写个程序,更是编程的步骤方法)

    第一个爬虫程序之定向爬取中国大学排名(收获良多,不仅仅是写个程序,更是编程的想法) 名称:定向爬取--中国大学排名定向爬取 首先,爬之前,看看你要定向爬取的网站和数据是什么类型的? 打开你要爬取网站, ...

最新文章

  1. OpenCVSharp_保存浮点型Mat数据
  2. poj 1033 Defragment
  3. 快速入门脑机接口:BCI基础(二)
  4. lstm处理时序数据结构图_详解LSTM
  5. python queue模块_Python的queue模块详解
  6. 「Ubuntu」系统常用命令
  7. Java学习(Map接口)
  8. 网络编程(part4)--刷新缓冲区
  9. 无锡c语言编程培训学校,无锡c语言培训班——C语言基础知识
  10. Oracle 基础笔记4
  11. JAVA WEB 设置session过期时间
  12. python人机猜拳随机,python实现人机猜拳小游戏
  13. pg8168改mac命令_Realtek 8168网卡改MAC地址教程
  14. c语言程序设计工作任务,C语言程序设计任务驱动教程
  15. opencv与openmv?
  16. 区块链第一个落地场景,居然是“发票”?
  17. AWVS工具太顶了,漏洞扫描工具AWVS介绍及安装教程
  18. forms 身份验证(授权)详解
  19. C++调用Boost库编写Python扩展模块
  20. python 在南京发展_南京和杭州,哪一座城市潜力大?

热门文章

  1. 响应式精美列表商城卡密自动发卡网站源码
  2. matlab平面电磁波入射_厘清平面波、TE(M)波、TE(M)极化、极化几个概念
  3. python实现屏幕录制_Python实现屏幕录制功能的代码
  4. DSP/BIOS设计指导书
  5. 图书馆管理系统——后台静态界面设计(类型增删改查)
  6. 2.6 haas506开发教程-高级组件库-net
  7. 交通违法自助处理解决方案
  8. 解决克隆虚拟机后网卡设备无法识别启动问题的方法
  9. Hive SQL常用函数
  10. XGBoost 、逻辑回归、随机森林 模型实战对比