一、观察网页
(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必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。