当前位置:首页>python>用Python爬取网站标题数据的流程与代码

用Python爬取网站标题数据的流程与代码

  • 2026-10-11 08:04:19
用Python爬取网站标题数据的流程与代码

一、为什么要学习网络爬虫?

在财务大数据分析中,数据来源至关重要。除了企业内部的ERP系统、财务数据库外,政策文件、行业动态、监管公告等外部信息同样是财务决策的重要依据。例如:

l财政部发布的会计准则解释直接影响企业账务处理

l税收政策调整关系到企业税负测算

l行业监管动态影响企业合规风险评估

手动浏览网站收集这些信息效率低下,而Python网络爬虫可以自动化、批量化的采集所需数据,是财务数据分析师的必备技能。

二、本案例:爬取财政部"政策发布"栏目标题

我们以财政部官网的"政策发布"栏目为例,演示如何批量采集政策文件标题、发布日期和链接地址,并导出为Excel文件。

三、爬虫流程六步法

第一步:导入必要的工具库("准备工具箱")

import requests # 负责发送网络请求,获取网页内容

import re # 负责正则表达式处理,清洗文本

from bs4 import BeautifulSoup # 负责解析HTML网页结构

import pandas as pd # 负责数据整理与Excel导出

import time # 负责控制请求频率,避免被封

学习要点:

l“requests”是Python的"网络浏览器",模拟人工访问网页

l“BeautifulSoup”是"网页结构解析器",像剥洋葱一样层层拆解HTML标签

l“pandas”是"数据整理专家",将零散数据变成整齐的表格

第二步:确定目标网址("找准入口")

构建200个页面的URL列表

url_list = ['https://kjs.mof.gov.cn/zhengcefabu/index_' + str(i) + '.htm',如图:

for i in range(1, 200)]

补充首页地址

url_list.append('https://kjs.mof.gov.cn/zhengcefabu/index.htm')

学习要点:

l观察网站分页规律:`index_1.htm`、`index_2.htm`……`index_199.htm`

l使用列表推导式批量生成URL,体现Python的简洁优雅

l别忘了把首页(无下标的`index.htm`)也加入列表

第三步:伪装浏览器身份("穿上"隐身衣")

设置User-Agent,模拟真实浏览器访问,如图:

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)

AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'}

学习要点:

l网站服务器会识别访问者身份,拒绝"裸奔"的爬虫程序

l`User-Agent` 告诉服务器:"我是用Chrome浏览器访问的正常用户"

l这是爬虫的"基本礼仪",也是避免被封IP的关键技巧

第四步:遍历页面并提取数据("按图索骥")

all_data = [] # 创建空列表,存放所有采集的数据

for url in url_list:

4.1 发送请求并获取响应

response = requests.get(url, headers=headers)

response.encoding = response.apparent_encoding # 自动识别编码

4.2 用BeautifulSoup解析网页

soup = BeautifulSoup(response.text, 'html.parser')

4.3 定位目标标签(关键!)

list_container = soup.find('ul', class_='liBox') # 找到class为liBox的ul标签

if list_container: # 如果找到了目标容器

for li in list_container.find_all('li'): # 遍历每个li标签

text = li.get_text(strip=True) # 提取纯文本内容

title_date_pair = text.split('\n')  # 按换行符分割标题和日期

提取链接地址

title_href = li.find('a')['href']

for i in title_date_pair:

all_data.append({

'Date': i[-10:], # 截取后10位作为日期

'Title': i[:-10], # 前面部分作为标题

'href': 'https://kjs.mof.gov.cn/zhengcefabu/' + title_href[1:]

})

time.sleep(1) # 礼貌等待1秒,避免请求过快

学习要点:

lF12开发者工具:在浏览器中按F12,查看网页HTML结构,找到数据所在的标签(本例中是`<ul class="liBox">`下的`<li>`标签)

lCSS选择器:`soup.find('ul', class_='liBox')` 像GPS定位一样精准找到数据容器,如图:

l数据拆解:标题和日期在同一文本中,用`split('\n')`或字符串切片分离

l礼貌爬虫:`time.sleep(1)` 控制访问频率,尊重服务器负载

第五步:数据清洗与筛选("去粗取精")

将列表转换为DataFrame表格

df = pd.DataFrame(all_data)

按关键词筛选(例如:查找"内部控制"相关政策)

key_word = input('请输入您要查询的关键词:')

df = df[df['Title'].str.contains(key_word)]

统计采集数量

news_count = len(df['Title'])

print('本次共采集%s条信息!' % news_count)

学习要点:

l“DataFrame”是pandas的核心数据结构,像Excel工作表一样行列分明

l“str.contains()”实现模糊匹配,快速筛选含关键词的政策文件

l“input()”实现人机交互,让程序更灵活

第六步:导出到Excel("成果归档")

将结果写入Excel文件

df.to_excel(key_word + '政策发布链接表.xlsx', index=False)

print('数据采集完成!')

学习要点:

l“to_excel()”一键导出,文件名动态拼接关键词

l“index=False”不导出行序号,保持表格整洁

l导出的Excel可直接用于财务政策研究、合规清单编制等工作

四、完整代码框架(供对照练习)

本文作为《财务大数据分析(基于Python)》教材的课外学习指导,旨在帮助初学者建立爬虫思维框架,实现从"手工查政策"到"自动采数据"的能力跃迁。

最新文章

随机文章