python爬取某省财政政策内容并保存为csv文件,最后用excel打开

文章直通车

  • 目标网址
  • 获取要求
  • 保存形式
  • 获取分析
  • 代码及主要注释
  • csv文件用excel打开问题

目标网址:http://czt.zj.gov.cn/col/col1164176/index.html

获取要求:获取每一条政策上的标题、政策文号、发布日期、发布机构以及发布的内容

python爬取某省财政政策内容并保存为csv文件,最后用excel打开_第1张图片
保存形式:保存为csv文件,用excel打开形如:

python爬取某省财政政策内容并保存为csv文件,最后用excel打开_第2张图片
分析:首先,我们需要获取每个政策的url,也就是li标签里面a标签的href属性值

python爬取某省财政政策内容并保存为csv文件,最后用excel打开_第3张图片
然后根据获取的url去获取所需要的内容:
python爬取某省财政政策内容并保存为csv文件,最后用excel打开_第4张图片
最后保存为csv文件

代码及主要注释

import requests
import re
from lxml import etree
import csv

# 通篇没有使用面向对象,因为个人觉得这样学习
column_name = ['title', 'ref_no', 'published_day',  'department', 'url', 'content']
with open('财政政策.csv', 'w', newline='') as f:
    csv_f = csv.writer(f)
    csv_f.writerow(column_name)

url = 'http://czt.zj.gov.cn/col/col1164176/index.html'

# 爬取第1页的数据,如若想要爬取多页的数据,可以用for循环并更改pageNum参数
params = {
    'uid': '5488355',
    'pageNum': 1
}

# 使用正则表达式匹配政策url的后半部分以构建url
response = requests.get(url, params=params).text
pat = '

csv文件用excel打开问题

最后在用excel打开的时候你可能会发现乱码,像这样:

python爬取某省财政政策内容并保存为csv文件,最后用excel打开_第5张图片

就先以记事本形式打开
python爬取某省财政政策内容并保存为csv文件,最后用excel打开_第6张图片

再点击文件另存为(也可以改掉编码为ANSI)

python爬取某省财政政策内容并保存为csv文件,最后用excel打开_第7张图片
python爬取某省财政政策内容并保存为csv文件,最后用excel打开_第8张图片

最终用excel打开就没有乱码了

也许你还可能发现发布日期为######,是因为列宽不够,增加列宽就可以啦

python爬取某省财政政策内容并保存为csv文件,最后用excel打开_第9张图片

你可能感兴趣的:(笔记)