python每五分钟抓取网站上的A股数据-----练习

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 import os
 4 import sqlite3
 5 from multiprocessing import Process
 6 import requests
 7 import time
 8 
 9 def get_g(page_mun,tm):
10     url="https://xueqiu.com/service/v5/stock/screener/quote/list?page=%s&size=30&" \
11         "order=desc&orderby=percent&order_by=percent&market=CN&type=sh_sz&_="% page_mun
12     headers = {'User-Agent': 'User-Agent:Mozilla/5.0'}
13     a = requests.get(url + str(int(time.time() ))+"123", headers=headers, verify=False)
14     conn = sqlite3.connect('CN_prices.db' )
15     cursor = conn.cursor()
16     print(str(page_mun)+"")
17     for x in a.json()['data']['list']:
18             name=x['name']
19             prices = [tm, str(x['symbol']).lower(), name, str(x['amount']).lower(), str(x['volume']).lower(),
20                       str(x['current']).lower(), str(x['percent']).lower()]
21             print(prices)
22             cursor.execute('insert into data_cn(date,symbol,name,amount,volume,current,percent) values'
23                            ' (\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\')'%
24                            (prices[0],prices[1],prices[2],prices[3],prices[4],prices[5],prices[6]))
25             conn.commit()
26     cursor.close()
27     conn.close()
28 
29 def get_all(start_page, stop_page):
30     tm = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
31     for i in range(start_page, stop_page+1):
32         try:
33             get_g(i, tm)
34         except Exception as e:
35              print(e)
36              pass
37 
38 
39 if __name__ == '__main__':
40     if os.path.exists('CN_prices.db'):
41         pass
42     else:
43         conn = sqlite3.connect('CN_prices.db' )
44         cursor = conn.cursor()
45         cursor.execute('create table data_cn (date TEXT,symbol TEXT, name TEXT,amount TEXT,'
46                        'volume TEXT,current TEXT,percent TEXT)')
47         conn.commit()
48         cursor.close()
49         conn.close()
50     while True :
51         p1 = Process(target=get_all, args=(1, 20))
52         print('Process will start.')
53         p1.start()
54         time.sleep(300)

 

转载于:https://www.cnblogs.com/zhang---1/p/10908692.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值