Python爬取中国金融期货交易所通知

本文介绍了如何使用Python通过requests和BeautifulSoup库爬取中国金融期货交易所的公告通知,包括识别静态网页结构、翻页规则、数据请求、乱码处理、HTML解析和数据存储在PandasDataFrame中并保存为Excel文件。
摘要由CSDN通过智能技术生成

一、观察网页

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

(2)判断所爬取的网页是否为静态网页。在网页界面右键点击“检查”,再点击Network后刷新页面。在第一个文件的Preview中可以找到该网页界面所有的信息,且切换界面时网址会发生变动,说明这是一个静态网页。

(3)观察翻页规律。

除了第一页以外其他页面符合规律:第{i}页:http://www.cffex.com.cn/jystz/index_{i}.html
网站共有95页,为了爬取到所有通知的内容,我们可以构建for循环,但因为第一页不符合规律,因此我们可以采用If语句来构建url:

for i in range(1,96):      if i == 1:          url = 'http://www.cffex.com.cn/jystz/index.html'  #第一页      else:          url = f'http://www.cffex.com.cn/jystz/index_{i}.html'  #随后几页   

二、引入所需的第三方库

代码如下:

import requests   from bs4 import BeautifulSoup   import pandas as pd   

三、请求数据

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

url = 'http://www.cffex.com.cn/jystz/index.html'   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 = response.apparent_encoding#将响应内容的编码修正为其实际编码,防止乱码。    text = response.text#获取网页的HTML文本。`

四、 解析数据

通过观察Elements可以发现我们所需的信息都在‘ul’标签下的class=‘clearFloat’中,我们需要的标题、发布时间和网址都在‘a’标签下,标题作为里面唯一的文本可以采用get_text来获取,通知的网址后缀在’href’中,要加上前缀‘http://www.cffex.com.cn/’才是一个完整的可以直接访问通知网址,时间在‘class=“time comparetime”’中。

代码如下:

soup = BeautifulSoup(text, "html.parser")#使用BeautifulSoup解析网页HTML文本。   li_list = soup.find('ul',class_="clearFloat").find_all('li')#查找包含所有交易所通知的ul标签,并获取其中的所有li标签。   for li in li_list:#遍历所有li标签。        title = li.find('a').get_text()#获取a标签的文本内容,即通知标题。        href = li.find('a').get('href')[1:]#获取a标签的href属性。        hrefs = 'http://www.cffex.com.cn/'+href#获取网址以便直接访问。        time = li.find('a',class_="time comparetime").text#获取发布时间。        item = [title,time,hrefs]#将爬取到的标题、发布时间和网址存入一个列表。        items.append(item)#将列表添加到初始化的items列表里。   

五、 存储数据

利用pandas库将所爬取数据信息存储下来。
代码如下:

df = pd.DataFrame(items,columns=['标题','发布时间','网址'])#将爬取到的数据存入Pandas DataFrame中。   df.to_excel(r"D:\Python\中国金融期货交易所通知.xlsx")# 将结果保存到指定路径的Excel文件中。   

六、 全套代码及运行结果

全套代码如下:

import requests#导入requests库,用于发送HTTP请求。   from bs4 import BeautifulSoup#从bs4库导入BeautifulSoup类,用于解析HTML。   import pandas as pd#导入pandas库,并使用别名pd,用于处理数据并将最终结果保存到Excel文件。   items = []#初始化一个空列表,用于存储爬取到的信息。   for i in range(1,96):       if i == 1:           url = 'http://www.cffex.com.cn/jystz/index.html'  #第一页       else:           url = f'http://www.cffex.com.cn/jystz/index_{i}.html'  #随后几页       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)#使用requests库发送GET请求,获取网页响应。       response.encoding = response.apparent_encoding#将响应内容的编码修正为其实际编码,防止乱码。       text = response.text#获取网页的HTML文本。       soup = BeautifulSoup(text, "html.parser")#使用BeautifulSoup解析网页HTML文本。       li_list = soup.find('ul',class_="clearFloat").find_all('li')#查找包含所有交易所通知的ul标签,并获取其中的所有li标签。       for li in li_list:#遍历所有li标签。           title = li.find('a').get_text()#获取a标签的文本内容,即通知标题。           href = li.find('a').get('href')[1:]#获取a标签的href属性。           hrefs = 'http://www.cffex.com.cn/'+href#获取网址以便直接访问。           time = li.find('a',class_="time comparetime").text#获取发布时间。           item = [title,time,hrefs]#将爬取到的标题、发布时间和网址存入一个列表。           items.append(item)#将列表添加到初始化的items列表里。   df = pd.DataFrame(items,columns=['标题','发布时间','网址'])#将爬取到的数据存入Pandas DataFrame中。   df.to_excel(r"D:\Python\中国金融期货交易所通知.xlsx")# 将结果保存到指定路径的Excel文件中。   

运行结果如下

以上就是“Python爬取中国金融期货交易所通知”的全部内容,希望对你有所帮助。

关于Python技术储备

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

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

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

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

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

img

四、实战案例

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

img

五、Python练习题

检查学习结果。

img

六、面试资料

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

img

最后祝大家天天进步!!

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值