Python爬虫练习:正则的运用
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 。
作者 不温卜火
以下文章来源于
文章插图
一. 前期准备说要爬取高校 , 那肯定要爬高校的 , 要不然就显的本博主言而无信!但是问题来了 , 要爬取哪个高校呢?不仅能够成功爬取到信息并且只需要一行正则表达式即可提取到相关信息 。 这可有点难为住博主了 , 正在这是 博主想到了自己学校 , 并且找到了自己学校就业处的网站 , 通过查看网站规则 , 发现正好符合规则 。 当然了博主本人的学校为双非院校 , 只是一所普通本二院校…Hahahaha… 话不多说 , 正片正式开始
文章插图
1. 分析网页
首先给出我们要爬取的网址:
;wbtreeid=1261
文章插图
我们打开网址以后 , 页面如上图所示 , 我们可以看到整个界面上 , 最多的就是一个又一个的通知公告 , 那么我们就知道我们需要爬取的内容 。 下面我们打开开发者选项
文章插图
通过上图 , 我们可以看到每一个tr标签对应一个通知公告 , 这个时候我们打开其中一个tr标签进行查看
文章插图
打开之后 , 我们可以看到我们所需要的所有信息都在a标签内 , 找到了位置 , 下面我们就可以进行解析实现了 。 当然了 , 博主本人还是更喜欢使用xpath进行解析的 。
2. 解析获取标题
下面先让大家看下xpath解析我们所需要的标题的方法:
文章插图
怎么样 , 是不是很简单 。 但是由于本篇博文是要用正则表达式 , 所以 , 博主还是使用正则表达式进行获取标题
文章插图
上述的正则表达式(.*?)代表获取选中部分的所有内容 。
如果有小伙伴对正则表达式有不懂的 , 可以自行查看下博主给的链接当然了 , 写好了正则表达式当然需要先测试下能否成功获取到我们所需要的内容 , 下面给出测试结果:
文章插图
, 我们可以看到获取到的结果是正确的 , 如果正则写的不对的话 , 需要多次查看调试 , 这不是什么难活 , 主要是需要有足够的耐心就够了 。
3. 保存到本地
此处 , 个人感觉 没啥需要讲解的地方 , 所以直接贴出代码
with open("./河工院通告.txt","w",encoding="utf-8") as file:#循环for title in title_list:#写file.write(title)file.write("\n")print("保存完毕!")
二. 从思想转换成程序既然大体思路已经完成了 , 那么下面就还差完成代码了
1. 思路及源码
那么下面就是代码的实现过程了:1.设定所需爬取的URL2. 添加请求头 , 伪装成浏览器 。 这是最基本的手段3. 发送请求 , 获取数据4. 通过正则提取所有内容5. 保存内容到本地
# 导入包import requestsimport reurl = ";wbtreeid=1261"headers = {"user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",}def hegong_Spider():# 发送请求 , 获取响应response = requests.get(url=url, headers=headers)# 获取响应数据content = response.content.decode("utf-8")# 提取数据 , 使用正则表达式title_list = re.findall(r'.*?',content,flags=re.DOTALL)#打开文件写with open("./河工院通告.txt","w",encoding="utf-8") as file:#循环for title in title_list:#写file.write(title)file.write("\n")print("保存完毕!")if __name__ == '__main__':hegong_Spider()
推荐阅读
- 计算机专业大一下学期,该选择学习Java还是Python
- 想自学Python来开发爬虫,需要按照哪几个阶段制定学习计划
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 2021年Java和Python的应用趋势会有什么变化?
- 非计算机专业的本科生,想利用寒假学习Python,该怎么入手
- 用Python制作图片验证码,这三行代码完事儿
- 历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...
- 为何在人工智能研发领域Python应用比较多
- 对于非计算机专业的同学来说,该选择学习Python还是C
- 学习完Python之后,如何向人工智能领域发展