Python爬取下载中金所期货法规文件

本文介绍了如何使用Python通过requests和BeautifulSoup库爬取中国金融期货交易所的静态网页,抓取期货法规PDF文件,并存储到本地文件夹。作者详细展示了请求数据、解析HTML和下载文件的过程。
摘要由CSDN通过智能技术生成

一、观察网页

(1)通过谷歌浏览器进入中国金融期货交易所
网页地址:http://www.cffex.com.cn/qhfg/

(2)判断所爬取的网页是否为静态网页。判断网页属于静态网页还是动态网页是进行Python数据收集工作的第一步,我们可以看到,在对网页进行翻页时,网址栏的网址发生了变化,说明这是静态网页。

二、引入所需的第三方库

这里我们可以导入os库用来处理文件路径,导入requests库,用于向网络请求数据,导入pandas用于数据处理与分析,导入BeautifulSoup用于解析HTML或XML格式网页数据。

代码如下:

import os    import requests    import pandas as pd     from bs4 import BeautifulSoup   

三、请求数据

观察Headers可以发现Request Method为GET,我们可以采用requests库请求数据。

代码如下:

`url = 'http://www.cffex.com.cn/qhfg/'   headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'}   response = requests.get(url,headers=headers)      response.encoding = "utf-8"    text = response.text`   

四、 解析数据并存储PDF文件

点击第一条期货法规右击检查,可以发现我们所需的所有信息都存储在li标签里。

我们可以在href中提取我们所需的PDF文件的网页后缀,再将网页前缀URL加上,就可以得到到期货法规的完整pdf链接。在title中我们可以看见该法规的名称,以此通过filename给文件命名。储存路径采用if语句,将文件存储在“文档”的“法律法规”文件夹当中,如果不存在此文件夹则创建一个“法律法规”文件夹。接着使用下载期货法规的PDF文件。

代码如下:

`soup = BeautifulSoup(text,'html.parser')    links = soup.find('div',class_='list').find_all('li')     for link in links:          title = link.find('a').text          href = link.find('a').get('href')[1:]          file_url = url + href           file_name = f"{title}.PDF".strip()          savingpath = os.path.join(os.path.expanduser('~'), 'Documents', '法律法规') + os.sep       if not os.path.exists(savingpath):        os.makedirs(savingpath)          filepath = savingpath + file_name           response = requests.get(file_url, stream=True)            with open(filepath, 'wb') as f:              f.write(response.content)`  

五、全套代码及运行结果

全套代码如下:

import os # 导入os模块,用于处理文件路径与操作系统底层操作   import requests  # 导入requests模块,用于向网络请求数据   import pandas as pd  # 导入pandas模块,用于数据处理与分析   from bs4 import BeautifulSoup  # 导入BeautifulSoup模块,用于解析HTML或XML格式网页数据      # 获取期货法规页面链接   url = 'http://www.cffex.com.cn/qhfg/'   headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'}   response = requests.get(url,headers=headers)   # 向目标url发送请求,返回response对象   response.encoding = "utf-8"   # 设置响应的编码方式为utf-8   text = response.text   # 提取响应的文本内容   items = []   # 初始化一个空列表来保存待抓取数据   soup = BeautifulSoup(text,'html.parser')   # 解析HTML文本   links = soup.find('div',class_='list').find_all('li')  # 查找div标签中class为list的所有li元素   for link in links:    # 遍历所有li标签       title = link.find('a').text   # 提取<a>标签的文本内容       href = link.find('a').get('href')[1:]   # 提取<a>标签内的href属性,并删除其开头的/       file_url = url + href    # 构建完整的文件URL       file_name = f"{title}.PDF".strip()   # 构建文件名,并去除空格和换行符       savingpath = os.path.join(os.path.expanduser('~'), 'Documents', '法律法规') + os.sep # 创建包含一个“法律法规”文件夹的新路径       if not os.path.exists(savingpath):   # 如果保存路径不存在创建该路径           os.makedirs(savingpath)          filepath = savingpath + file_name    # 构建完整的文件路径       response = requests.get(file_url, stream=True)                 with open(filepath, 'wb') as f:   # 以二进制写模式打开文件           f.write(response.content)  # 写入响应内容           print(f'Downloaded file {file_name} to {savingpath}') # 打印下载进度   

运行结果如下

以上就是“Python爬取下载中金所期货法规文件”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值