使用python批量采集国家法律法规数据库——科学学习使用!遵守法律!绿色合规!

  • 模块使用:

    • 使用Python的requests模块进行网络请求操作。
  • 目标网址:

    • 国家法律法规数据库网址
  • 实现步骤:

    1. 模拟浏览器请求:

      • 设置请求头信息模拟浏览器行为。
    2. 请求网址并循环获取数据:

      • 循环页面以获取数据,设置查询参数并使用requests.get()请求数据。
    3. 提取数据并保存文件:

      • 从返回的JSON数据提取文档ID,请求文档内容并保存为文件。

import requests

# 模拟浏览器对url地址发送请求
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'
}
# 请求网址 目录页链接
link = 'https://flk.npc.gov.cn/api/'
# for 循环页数
for page in range(1, 8):
    print(f'正在下载第{page}页数据:')
    # 查询参数
    p = {
        'page': page,
        'type': 'flfg',
        'searchType': 'title;vague',
        'sortTr': 'f_bbrq_s;desc',
        'gbrqStart': '',
        'gbrqEnd': '',
        'sxrqStart': '',
        'sxrqEnd': '',
        'sort': 'true',
        'size': '10',
        '_': '1713881559870',
    }
    # 发送请求
    link_json = requests.get(url=link, params=p, headers=headers).json()
    print(link_json)
    # for循环遍历 提取ID
    for index in link_json['result']['data']:
        docx_id = index['id']
        print(docx_id)

        # url地址
        url = 'https://flk.npc.gov.cn/api/detail'
        # 请求参数
        data = {
            'id': docx_id
        }
        # 发送请求
        response = requests.post(url=url, data=data, headers=headers)
        # 获取响应json数据
        json_data = response.json()

        # 解析数据
        # 提取文档名称
        title = json_data['result']['title']
        down_load = 'https://wb.flk.npc.gov.cn' + json_data['result']['body'][0]['path']

        # 对下载地址发送请求,获取二进制数据
        content = requests.get(url=down_load, headers=headers).content

        # 提取文件格式
        name = down_load.split('.')[-1]
        # 保存数据
        with open('content\\' + title + '.' + name, mode='wb') as f:
            # 写入数据
            f.write(content)
        print(down_load)

科学学习使用!遵守法律!热爱祖国热爱党!

上一篇:Redis分布式锁学习


下一篇:Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.1 新增加一个RISC-V CPU(NARUTO-PI)- 2. 思路引导