Python爬虫练习:正则的运用( 二 )
2. 运行结果
文章插图
三. 代码升级上述代码 , 我们只能爬取第一个的内容 , 这和我们所想的是有差别的 , 我们想的是要爬取所有通告 , 这个时候不用想我们就需要通过模拟翻页动作 , 进行全部获取 。
1. 分析
我们先来通过查看网址的变化以及查看能否看到网站的总页数 , 好以此来实现爬取全部标题的目的 。
首先我们先来看下网址差异:
;a5p=1a5p=2a5p=4 --tt-darkmode-color: #999999;">根据上述三个网址 , 我们不难发现网址唯一变化的地方就是
文章插图
那么 , 我们就可以通过拼接网址的方式实现网页跳转 。
下面我们再来查看网站总共有多少页码 。
文章插图
我们可以看到总共有13页 , 下面就很简单了 , 我们先来看下拼接的url是否是我们所需要的
文章插图
2. 源码
通过上图 , 看到url是我们所需要的 , 下面就可以完善一开始的代码了:
# 导入包import randomimport timeimport requestsimport reheaders = {"user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",}base_url = ";a5p={}&a5c=15&urltype=tree.TreeTempUrl&wbtreeid=1261"def hegong_Spider():# 翻页for i in range(1, 14):print("第{}页爬取中...".format(i))time.sleep(random.random())url = base_url.format(i)# 发送请求 , 获取响应response = requests.get(url=url, headers=headers)# 获取响应数据content = response.content.decode("utf-8")# 提取数据 , 使用正则表达式title_list = re.findall(r'.*?', content, flags=re.DOTALL)# title_list = content.xpath('//a[@class="c57797"]/@title').extract()# 打开文件写with open("./河工院通告.txt", "a", encoding="utf-8") as file:# 循环for title in title_list:# 写file.write(title)file.write("\n")print("保存完毕!")if __name__ == '__main__':hegong_Spider()【Python爬虫练习:正则的运用】3. 运行结果
文章插图
推荐阅读
- 计算机专业大一下学期,该选择学习Java还是Python
- 想自学Python来开发爬虫,需要按照哪几个阶段制定学习计划
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 2021年Java和Python的应用趋势会有什么变化?
- 非计算机专业的本科生,想利用寒假学习Python,该怎么入手
- 用Python制作图片验证码,这三行代码完事儿
- 历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...
- 为何在人工智能研发领域Python应用比较多
- 对于非计算机专业的同学来说,该选择学习Python还是C
- 学习完Python之后,如何向人工智能领域发展
