前言
嗨喽!大家好呀,这里是魔王~
知识点:
- requests发送请求
- 开发者工具的使用
- json类型数据解析
- 正则表达式的使用
模块安装:
按住键盘 win + r, 输入cmd回车 打开命令行窗口, 在里面输入 pip install 模块名
开发环境:
- 版 本:python 3.8
- 编辑器:pycharm 2021.2
代码实现
- 发送请求
- 获取数据
- 解析数据
- 保存数据
代码
import requests
import re
# 伪装
headers = {
'Cookie': 'qgqp_b_id=7b7cfe791fce1724e930884be192c85e; HAList=a-sz-300059-%u4E1C%u65B9%u8D22%u5BCC%2Cty-100-HSI-%u6052%u751F%u6307%u6570%2Cty-1-000001-%u4E0A%u8BC1%u6307%u6570; em_hq_fls=js; intellpositionL=1522.39px; intellpositionT=3367px; ASP.NET_SessionId=qevhbz22qxoqxpbwclsxzctm; _adsame_fullscreen_16928=1; st_si=42277447983105; st_asi=delete; st_pvi=25714906615245; st_sp=2022-02-08%2022%3A12%3A10; st_inirUrl=https%3A%2F%2Fwww.baidu.com%2Flink; st_sn=2; st_psi=20220407142006395-112200312936-7700776192',
'Host': 'fund.eastmoney.com',
'Referer': 'https://fund.eastmoney.com/data/fundranking.html',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36',
}
with open('股票.csv', mode='a', encoding='utf-8') as f:
f.write('基金代码,基金简称,基金英文,日期,单位净值,累计净值,日增长率,近一周,近一个月,近三个月,近六个月,近一年,近两年,近三年,近年来,成立来,上市日期,,,,手续费,,')
f.write('\n')
# 1. 发送请求
for page in range(1, 214):
url = f'https://fund.eastmoney.com/data/rankhandler.aspx?op=ph&dt=kf&ft=all&rs=&gs=0&sc=6yzf&st=desc&sd=2021-04-07&ed=2022-04-07&qdii=&tabSubtype=,,,,,&pi={page}&pn=50&dx=1&v=0.20942755772252863'
response = requests.get(url=url, headers=headers)
# <Response [200]>: 请求成功
# 2. 获取数据
data = response.text
# 3. 解析数据
datas = re.findall('datas:\[(.*)\],', data)[0]
# eval(): 字符串去除引号 '{}','[]', '字符串' 元组
data_tuple = eval(datas)
for tuple_ in data_tuple:
print(tuple_)
# 4. 保存数据
with open('股票.csv', mode='a', encoding='utf-8') as f:
f.write(tuple_)
f.write('\n')
[图片上传失败...(image-2a8824-1649659629989)]
视频教程
image.png尾语
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
网友评论