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)

 

posted @ 2019-05-22 21:38  zhang___1  阅读(721)  评论(2编辑  收藏  举报