正则表达式爬取贵州财经大学-信息学院官网

在学习完正则表达式、常用网络数据爬取模块、正则表达式爬取数据常见方法等内容之后,我将操作一个简单的正则表达式爬取网站的实例。这里我以爬取贵州财经大学-信息学院官网作为实战操作,
网址“http://xxxy.gufe.edu.cn/normalView?par=subject&curItem=assessment” 打开如下图所示
在这里插入图片描述
我需要实现爬取的内容如下:
1.官网网址的标题(title)内容。
2.官网网页的所有的超链接
3.获取页面的所有图片的路径
4.爬取网页内容

1.分析过程

1.1正则表达式爬取标题
网站的标题通常位于<head><title>...</title></head>之间,爬取网站的标题“贵州财经大学-信息学院”的方法是通过正则表达式“<title>(.*?)</title>”实现,定点分析如下图所示:
在这里插入图片描述
代码如下,首先通过urlopen()函数访问博客网址,然后定义正则表达式爬取

# -*- coding: utf-8 -*-
import re
import urllib

url = "http://xxxy.gufe.edu.cn/normalView?par=subject&curItem=assessment"
content = urllib.urlopen(url).read()

#获取网页标题
res = r'<title>(.*?)</title>'
title = re.findall(res,content)
for t in title:
    print u'网页标题:',unicode(t,'utf-8')

输出结果:
网页标题: 贵州财经大学-信息学院

1.2获取网页的所有的超链接
网页中的超链接的结构都是<a href="url">名称</a>,我们就可以用正则表达式对a标签进行匹配

#获取网页的超链接
res1 = r"<a.*?href=.*?<\/a>"
urls = re.findall(res1,content,re.I|re.M|re.S)
for k in urls:
    print unicode(k,'utf-8')

输出的部分结果展示:
在这里插入图片描述
1.3获取页面的所有图片的路径
由于HTML插入图片标签格式为<img src="域名/文件夹/图片名称.图片格式" alt="图片的描述">,我只需通过正则表达式获取以“src=”开头,以双引号结尾的内容即可。

#获取页面的所有图片的路径
res2 = r'src="(.*?)"'
pic = re.findall(res2,content)
for p in pic:
    print unicode(p,'utf-8')

输出的部分结果展示:在这里插入图片描述
这里的每张图片都忽略了网页的域名地址http://xxxy.gufe.edu.cn/,如果要查看或下载图片,需要用完整的链接路径,如http://xxxy.gufe.edu.cn/upload/modularImgs/0bb5556c-3486-44a1-b3df-cc0a63e26071.jpg,查看结果如下:
在这里插入图片描述
1.4.爬取网页内容
通过爬取到的源码检查,我直接使用find(r’ 开始的内容‘)和find(r’ 结束的内容‘)进行片段截取
注意:
(1)要通过爬取的网页源码定位查找
(2)find(r’ 开始的内容‘),开始定位的内容包含在其中
(3)find(r’ 结束的内容‘),结束定位的内容包含在不在其中
在这里插入图片描述
运行结果:
在这里插入图片描述

2.所有代码实现

# -*- coding: utf-8 -*-
import re
import urllib

url = "http://xxxy.gufe.edu.cn/normalView?par=subject&curItem=assessment"
content = urllib.urlopen(url).read()

#获取网页标题
res = r'<title>(.*?)</title>'
title = re.findall(res,content)
for t in title:
    print u'网页标题:',unicode(t,'utf-8')

#获取网页的超链接
res1 = r"<a.*?href=.*?<\/a>"
urls = re.findall(res1,content,re.I|re.M|re.S)
for k in urls:
    print unicode(k,'utf-8')

#获取页面的所有图片的路径
res2 = r'src="(.*?)"'
pic = re.findall(res2,content)
for p in pic:
    print unicode(p,'utf-8')

#爬取网页内容
star = content.find(r'2018年5月,')
end = content.find(r'&nbsp;&nbsp;</span></span></span></p>')
print unicode(content[star:end],'utf-8')

运行结果如下:

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

PS C:\Users\Youle> & D:/Python/Python27/python.exe g:/20190708_gufe.py
网页标题: 贵州财经大学-信息学院
<a href="/" title="信息学院" class="logo"><img style="height: 73px" src="images/logo.png"></a>
<a href="https://www.gufe.edu.cn/www/" target="_blank" title="">学校主页</a>
<a href="/research?type=8-1&curItem=8_1&curtitle=招生就业" target="_blank" title="">招生就业</a>
<a href="/research?type=8-2&curItem=8_2&curtitle=校友之窗" target="_blank" title="">校友之窗</a>
<a href="http://portal.gufe.edu.cn/jwc" target="_blank" title="">教务系统</a>
<a href="/research?type=8-3&curItem=8_3&curtitle=招聘信息" target="_blank" title="">招聘信息</a>
<a href="http://portal.gzife.edu.cn/web/xxxy/jieshao/duiwu.html" target="_blank" title="">旧站入口</a>
<a href="/"><img src="images/nav-home.png"></a>
<a href="/">首页</a>
<a href="/normalView?par=introduce&curItem=introduce">学院概况</a>
<a href="/normalView?par=introduce&curItem=introduce">学院简介</a>
<a href="/normalView?par=introduce&curItem=organization">组织机构</a>
<a href="/normalView?par=introduce&curItem=leader">现任领导</a>
<a href="/normalView?par=introduce&curItem=professor">教授委员会</a>
<a href="/normalView?par=introduce&curItem=contact">联系方式</a>
<a href="/normalView?par=teacher&curItem=major1">师资力量</a>
<a href="/normalView?par=teacher&curItem=major1">计科系</a>
<a href="/normalView?par=teacher&curItem=major2">信息管理系</a>
<a href="/normalView?par=teacher&curItem=major3">信息工程系</a>
<a href="/normalView?par=scientific&curItem=research">科学研究</a>
<a href="/normalView?par=scientific&curItem=research">科研平台</a>
<a href="/newsList?type=6-1&par=scientific&curItem=6_1">科研项目</a>
<a href="/newsList?type=6-2&par=scientific&curItem=6_2">研究成果</a>
<a href="/newsList?type=6-3&par=scientific&curItem=6_3">成果转化</a>
<a href="/normalView?par=personnel&curItem=curriculum">本科生教育</a>
<a href="/normalView?par=personnel&curItem=curriculum">课程与教学</a>
<a href="/normalView?par=personnel&curItem=culture">培养方案</a>
<a href="/normalView?par=personnel&curItem=environment">培养环境与条件</a>
<a href="/normalView?par=graduate&curItem=tutorintroduction">研究生教育</a>
<a href="/normalView?par=graduate&curItem=tutorintroduction">导师介绍</a>
<a href="/normalView?par=graduate&curItem=bculture">培养方案</a>
<a href="/newsList?type=9-1&par=graduate&curItem=enrolment">招生信息</a>
<a href="/normalView?par=graduate&curItem=academic">学术活动</a>
<a href="/normalView?par=subject&curItem=discipline">学科建设</a>
<a href="/normalView?par=subject&curItem=discipline">学科概括</a>
<a href="/normalView?par=subject&curItem=construction">建设规划</a>
<a href="/normalView?par=subject&curItem=disciplineteam">学科团队</a>
<a href="/normalView?par=subject&curItem=assessment">学科评估</a>
<a href="/newsList?type=1&par=partyBuilding&curItem=1_1">党建工作</a>
<a href="/newsList?type=1-1&par=partyBuilding&curItem=1_1">党建思想动态</a>
<a href="/newsList?type=1-2&par=partyBuilding&curItem=1_2">理论学习</a>
<a href="/newsList?type=1-3&par=partyBuilding&curItem=1_3">模范人物</a>
<a href="/newsList?type=1-4&par=partyBuilding&curItem=1_4">党风廉政</a>
<a href="/newsList?type=1-5&par=partyBuilding&curItem=1_5">支部风采</a>
<a href="/normalView?par=partyBuilding&curItem=buildingtrade">工会</a>
<a href="/newsList?type=2-1&par=thought&curItem=2_1">思政工作</a>
<a href="/newsList?type=2-1&par=thought&curItem=2_1">团委</a>
<a href="/newsList?type=2-2&par=thought&curItem=2_2">学生会</a>
<a href="/newsList?type=2-3&par=thought&curItem=2_3">社团</a>
<a href="/newsList?type=2-4&par=thought&curItem=2_4">评优评奖</a>
<a href="/newsList?type=2-5&par=thought&curItem=2_5">资助工作</a>
<a href="/"><img style="height: 48px" src="images/logo.png"></a>
<a href="/" title="首页">首页</a>
<a href="/normalView?par=introduce&curItem=introduce">学院概况</a>
<a href="/normalView?par=teacher&curItem=major1">师资力量</a>
<a href="/normalView?par=scientific&curItem=research">科学研究</a>
<a href="/normalView?par=personnel&curItem=curriculum">本科生教育</a>
<a href="/normalView?par=graduate&curItem=tutorintroduction">研究生教育</a>
<a href="/normalView?par=subject&curItem=discipline">学科建设</a>
<a href="/newsList?type=1&par=partyBuilding&curItem=buildingtrade">党建工作</a>
<a href="/newsList?type=2-1&par=thought&curItem=2_1">思政工作</a>
<a href="#">首页</a>
<a href="#">学科建设</a>
<a href="#">学科评估</a>
<a href='/normalView?par=subject&curItem=discipline' title='学科概括'>学科概括</a>
<a href='/normalView?par=subject&curItem=construction' title='建设规划'>建设规划</a>
<a href='/normalView?par=subject&curItem=disciplineteam' title='学科团队'>学科团队</a>
<a href='/normalView?par=subject&curItem=assessment' title='学科评估'>学科评估</a>
<a href=""><img src="images/logo.png" style="width: 100%" alt=""></a>
<a href="118.24.46.119" title="" target="_blank"><img src="images/ft-ar.png">党建中心</a>
<a href="http://cas.gzife.edu.cn/cas/login?" title="" target="_blank"><img src="images/ft-ar.png">数字贵财</a>
<a href="http://library.gufe.edu.cn/" title="" target="_blank"><img src="images/ft-ar.png">图书馆</a>
<a href="/messageList?type=1" title="" target="_blank"><img src="images/ft-ar.png">书记信箱</a>
<a href="/messageList?type=2" title="" target="_blank"><img src="images/ft-ar.png">院长信箱</a>
<a href="/resources" title="" target="_blank"><img src="images/ft-ar.png">资料下载</a>
images/logo.png
images/search.png
images/se-icon.png
images/close.png
images/nav-home.png
images/logo.png
upload/modularImgs/0bb5556c-3486-44a1-b3df-cc0a63e26071.jpg
images/side-bg.png
/images/wb_gufe.png
images/logo.png
images/ft-ar.png
images/ft-ar.png
images/ft-ar.png
images/ft-ar.png
images/ft-ar.png
images/ft-ar.png
js/jquery.js
js/common.js
2018年5月,经贵州省科学技术厅(贵州省知识产权局)批准,我院邓明森院长申请的项目“数据科学与高性能计算国际联合实验室国际科技合作基地”正式立项。该项目类别
为科技平台及人才团队计划,项目总经费100万元,其中省科技厅拨款50万元。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值