Python爬虫练习:正则的运用( 二 )

2. 运行结果
Python爬虫练习:正则的运用文章插图
三. 代码升级上述代码 , 我们只能爬取第一个的内容 , 这和我们所想的是有差别的 , 我们想的是要爬取所有通告 , 这个时候不用想我们就需要通过模拟翻页动作 , 进行全部获取 。
1. 分析
我们先来通过查看网址的变化以及查看能否看到网站的总页数 , 好以此来实现爬取全部标题的目的 。
首先我们先来看下网址差异:
;a5p=1a5p=2a5p=4 --tt-darkmode-color: #999999;">根据上述三个网址 , 我们不难发现网址唯一变化的地方就是
Python爬虫练习:正则的运用文章插图
那么 , 我们就可以通过拼接网址的方式实现网页跳转 。
下面我们再来查看网站总共有多少页码 。
Python爬虫练习:正则的运用文章插图
我们可以看到总共有13页 , 下面就很简单了 , 我们先来看下拼接的url是否是我们所需要的
Python爬虫练习:正则的运用文章插图
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. 运行结果
Python爬虫练习:正则的运用文章插图


推荐阅读