用python爬取实时基金估值
首先我们需要用表格创建一个csv文件用于存放我们的数据:
csv文件样式如下:
获取动态基金的数据代码方式如下,首先打开同花顺爱基金网址:
比如我用的(000001),打开之后右击检查:
点击network:
快捷键ctrl+r:
选择如图所示,获取:
最后就是爬虫代码的编写;下文已经编写好:
import requests
#from bs4 import BeautifulSoup
import csv
import time
print(time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime()))
sFileName=open('基金.csv')
rows=csv.reader(sFileName)
time=input("please enter your time(like 1000):")
print("增长的基金:")
for row in rows:
#print(row[-5:][1])
# print(''.join(row))
#l=["JSF202","JBH915","JSJ506","JPN219","JSJ131","JPG291","162703","JPN225"]
#for i in l
try:
url="http://gz-fund.10jqka.com.cn/?module=api&controller=index&action=chart&info=vm_fd_"+row[-5:][1]+"&start="+time+"&"
#改变爬虫头
headers={"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}
data=requests.get(url)
data.encoding="UTF-8"
datasplit=data.text.split("|")
datasplit1=datasplit[1].split(";")
datasplit2=datasplit[1].split(",")
#print(datasplit2)
mx=float(datasplit2[1])-float(datasplit2[2])
rata=mx/float(datasplit2[2])*100
except:
print(row, "error")
else:
if rata>=0:
print("{:_40.2f}".format(row[0][:][:], rata))
#print(row[-5:][0][:-4],format(rata,".2f"))
#except :
# print(row,"error")
else:
continue
print("减值的基金:")
import requests
#from bs4 import BeautifulSoup
import csv
sFileName=open('基金.csv')
rows=csv.reader(sFileName)
time=input("please enter your time(like 1000):")
for row in rows:
try:
url = "http://gz-fund.10jqka.com.cn/?module=api&controller=index&action=chart&info=vm_fd_" + row[-5:][
1] + "&start=" + time + "&"
# 改变爬虫头
headers = {
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}
data = requests.get(url)
data.encoding = "UTF-8"
datasplit = data.text.split("|")
datasplit1 = datasplit[1].split(";")
datasplit2 = datasplit[1].split(",")
# print(datasplit2)
mx = float(datasplit2[1]) - float(datasplit2[2])
rata = mx / float(datasplit2[2]) * 100
except:
print(row, "error")
else:
if rata < 0:
print("{:_40.2f}".format(row[0][:][:], rata))
# print(row[-5:][0][:-4],format(rata,".2f"))
# except :
# print(row,"error")
else:
continue
"""