Skip to content

Commit ea522a6

Browse files
authored
沪深港通aiohttp
1 parent bb0b70d commit ea522a6

1 file changed

Lines changed: 17 additions & 10 deletions

File tree

hushengangtong.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
66
@author: lambda
77
"""
8-
98
import aiohttp
109
import asyncio
1110
import re
@@ -16,6 +15,8 @@
1615
import pandas as pd
1716
import datetime
1817
import time
18+
import requests as request
19+
from lxml import etree
1920

2021
user_agent = [
2122
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
@@ -56,13 +57,18 @@
5657
"Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7.0.2.37/28/999",
5758
# iPhone 6:
5859
"Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25",
59-
6060
]
6161

62-
today = datetime.date.today()
63-
yestoday = today - datetime.timedelta(days=1)
64-
print('今天获取的数据是: ',yestoday)
65-
fname = str(yestoday)+".xlsx"
62+
start = time.time()
63+
64+
host = 'http://data.eastmoney.com/hsgtcg/list.html?DateType=DateType=%27jd%27'
65+
res = request.get(host)
66+
xml = etree.HTML(res.text)
67+
result = xml.xpath('/html/body/div[1]/div[8]/div[2]/div[2]/div[1]/div[1]/div/span/text()')[0]
68+
today = result[1:11]
69+
print(f'今天获取的数据是: {today}')
70+
71+
fname = str(today)+".xlsx"
6672
fname1 = "PPOS_POTE_"+fname
6773
fname2 = "PPOS_POTE_SZ_"+fname
6874

@@ -77,6 +83,7 @@
7783

7884
heads = {'HdDate', 'SCode', 'SName', 'NewPrice', 'ShareSZ_Chg_One', 'ShareSZ_Chg_Rate_One', 'LTZB_One', 'ZZB_One'}
7985
rows = []
86+
8087
# 获取网页信息
8188
async def fetch(session, url):
8289
headers = {'User-Agent': random.choice(user_agent)}
@@ -101,19 +108,19 @@ async def download(url):
101108
html = await fetch(session, url)
102109
await parser(html)
103110

104-
urls = [f'http://dcfm.eastmoney.com/EM_MutiSvcExpandInterface/api/js/get?type=HSGT20_GGTJ_SUM&token=894050c76af8597a853f5b408b759f5d&st=ShareSZ_Chg_One&sr=-1&p='+str(p)+'&ps=50&js=var%20mXyeKPjW={pages:(tp),data:(x)}&filter=(DateType=%27jd%27%20and%20HdDate=%27'+str(yestoday)+'%27)&rt=53931781' for p in range(1, 31)]
111+
#urls = [f'http://dcfm.eastmoney.com/em_mutisvcexpandinterface/api/js/get?callback=jQuery112305322211230994847_1618827285261&st=ShareSZ_Chg_One&sr=-1&ps=50&p='+str(p)+'&type=HSGT20_GGTJ_SUM&token=894050c76af8597a853f5b408b759f5d&js=%7B%22data%22%3A(x)%2C%22pages%22%3A(tp)%2C%22font%22%3A(font)%7D&filter=(DateType%3D%27jd%27)(HdDate%3D%27'+str(today)+'%27)' for p in range(1, 31)]
112+
urls = [f'http://dcfm.eastmoney.com/EM_MutiSvcExpandInterface/api/js/get?type=HSGT20_GGTJ_SUM&token=894050c76af8597a853f5b408b759f5d&st=ShareSZ_Chg_One&sr=-1&p='+str(p)+'&ps=50&js=var%20mXyeKPjW={pages:(tp),data:(x)}&filter=(DateType=%27jd%27%20and%20HdDate=%27'+str(today)+'%27)&rt=53931781' for p in range(1, 31)]
105113

106114
# 利用asyncio模块进行异步IO处理
107115
async def main():
108116
await asyncio.gather(*[download(url) for url in urls])
109-
110-
start = time.time()
117+
111118
asyncio.run(main())
112119
# 将rows转化为pandas中的DataFrame
113120
df = pd.DataFrame(rows)
114121
df.columns = ['日期', '代码', '名称', '最新股价' , '市值', '市值增幅', '占流通股比', '占总股比']
115122
# 从大到小排序
116-
df.sort_values(by='市值')
123+
df.sort_values(by='市值', ascending=False)
117124
try:
118125
df.to_excel(fname) # 保存成Excel文件
119126
except Exception as e:

0 commit comments

Comments
 (0)