Python采集天天基金数据,帮你掌握基金最新动向
2023-04-18 16:06:32 时间
本次案例实现流程
一、思路分析
需要什么数据?需要的数据在哪里?
二、代码实现
- 发送请求
- 获取数据
- 解析数据
- 多页爬取
- 保存数据
知识点
- requests发送请求
- 开发者工具的使用
- json类型数据解析
- 正则表达式的使用
开发环境
- 版 本:python 3.8
- 编辑器:pycharm 2021.2
本次目标
分析网站
第一步:打开开发者工具,按F12,或者右键点击检查 第二步:刷新网站,点击搜索工具,在搜索框内输入基金代码,点击搜索
第三步:找到数据所在的真实url
开始代码
导入模块
import requests
import re
import csv
发送请求
url = f'http://fund.eastmoney.com/data/rankhandler.aspx?op=ph&dt=kf&ft=all&rs=&gs=0&sc=6yzf&st=desc&sd=2020-12-16&ed=2021-12-16&qdii=&tabSubtype=,,,,,&pi=1&pn=50&dx=1'
headers = {
'Cookie': 'HAList=a-sz-300059-%u4E1C%u65B9%u8D22%u5BCC; em_hq_fls=js; qgqp_b_id=7b7cfe791fce1724e930884be192c85e; _adsame_fullscreen_16928=1; st_si=59966688853664; st_asi=delete; st_pvi=79368259778985; st_sp=2021-12-07%2014%3A33%3A35; st_inirUrl=https%3A%2F%2Fwww.baidu.com%2Flink; st_sn=3; st_psi=20211216201351423-112200312936-0028256540; ASP.NET_SessionId=miyivgzxegpjaya5waosifrb',
'Host': 'fund.eastmoney.com',
'Referer': 'http://fund.eastmoney.com/data/fundranking.html',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
获取数据
data = response.text
解析数据 筛选数据
data_str = re.findall('[(.*?)]', data)[0]
转变数据类型
tuple_data = eval(data_str)
for td in tuple_data:
# 把td 变成列表
td_list = td.split(',')
翻页
分析不同页数url变化规律
for page in range(1, 193):
print(f'-------------------------正在爬取第{page}页内容-----------------------')
url = f'http://fund.eastmoney.com/data/rankhandler.aspx?op=ph&dt=kf&ft=all&rs=&gs=0&sc=6yzf&st=desc&sd=2020-12-16&ed=2021-12-16&qdii=&tabSubtype=,,,,,&pi={page}&pn=50&dx=1'
保存数据
with open('基金.csv', mode='a', encoding='utf-8', newline='') as f:
csv_write = csv.writer(f)
csv_write.writerow(td_list)
print(td)
运行代码,得到数据
相关文章
- 自动化网络验证以实现更顺利变更
- 基于 MaxCompute 分布式 Python 能力的大规模数据科学分析
- Flink 1.14 新特性预览
- API网关:第8层网络
- Python 开发人员正在为医疗保健创建颠覆性的 AI 应用程序
- 如何在Python中创建和使用虚拟环境
- 常用的分布式事务都有哪些?我该用哪个?
- 在 Python中处理大型机器学习数据集的简单方法
- 六个优秀的可解释AI (XAI)的Python框架推荐
- Python虚拟环境很简单,看完你就会了
- 总结几个简单好用的Python人脸识别算法
- 又是好兄弟 爱立信与三星和解专利纠纷
- Flink分布式程序的异常处理
- 好用的 Python 虚拟环境,没有之一
- 为什么TensorFlow可以做机器学习开发?
- 记一次beego通过go get命令后找不到bee.exe的坑
- 指定Task任务顺序执行
- CompletionService 使用小结
- Win环境安装Protobuf 2.0 版本
- shell 同时执行多任务下载视频