爬取某学校官网通知

爬取某学校官网通知

一、爬取网页所有通知

需求:有时候对于学生党来说,每次大考之后,查分数都是特别心急,特别是对于学校官网的通知等,本笔记主要关注这一点,以下是实现内容。

# 使用 urllib 和 BeautifulSoup 库实现
import urllib.request
import urllib.parse

from bs4 import BeautifulSoup

# 一、获取网址中的HTML源代码存储为python list对象
requst = urllib.request.Request('http://sjxy.whpu.edu.cn/index/tzgg.htm')
# 二、因网站设置有反爬虫,需要添加请求头
requst.add_header('User-Agent' , 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)') # 添加请求头,模仿人使用浏览器访问页面
response = urllib.request.urlopen(requst)
html = response.read()

# 三、使用 BeauSoup() 对象实现对 HTML 页面的解析 ,使用 python 自带的解析方式 ‘html.parser’
bs = BeautifulSoup(html, 'html.parser')
# 四、定位 通知信息所在的 table 标签,使用find_all() 方法,class 类选择器查找
tables = bs.find_all('table', class_= "in_list2")  # {'class' : 'in_list2'}  两种写法
# 五、查找 table 表格下的行标签 tr 获取 list 对象
tab = tables[0].find_all('tr')
# print(tab)
# 六、 遍历 tr 得到 本页面的所有通知
print('--------------------------------')
for tr in tab:
    for td in tr.find_all('td') :
        print('通知时间:' , td.find_all('p')[1].get_text())
        print('通知标题:' , td.p.get_text()[2:])
        print('链接:' , 'http://sjxy.whpu.edu.cn/' + td.a['href'][2:])
        print('-----------分割线----------------')

二、小结

以上是简单的爬取页面,其中还有很多功能没有实现,比如:把通知存放到数据库,把最新通知发送到自己手机,不用人死盯着页面刷新等等,后续功能在慢慢学习中,有错误的方法还请各位指正,非常感谢这篇文章有缘见到你,谢谢。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值