(一)python金融數據爬蟲項目 爬取目標:雪球網(起始url:https://xueqiu.com/hq#exchange=CN&firstName=1&secondName=1_0&page=1) 爬取內容:雪球網深滬股市情況 使用工具:requests庫實現發送請求、獲取響應。 json格式 ...
(一)python金融數據爬蟲項目
爬取目標:雪球網(起始url:https://xueqiu.com/hq#exchange=CN&firstName=1&secondName=1_0&page=1)
爬取內容:雪球網深滬股市情況
使用工具:requests庫實現發送請求、獲取響應。
json格式的動態載入數據實現數據解析、提取。
pymysql進行數據存儲
思路:對該網站的動態載入數據的請求方式進行控制變數的發送請求,最終得到實際有效的參數。
項目重點:使用抓包工具分析發送數據請求到json格式的cookie數據,這是此次動態抓取的重點
直接放代碼(詳細說明在註釋里,歡迎同行相互交流、學習~):
1 import requests 2 import json 3 import pymysql 4 5 class mysql_conn(object): 6 # 魔術方法, 初始化, 構造函數 7 def __init__(self): 8 self.db = pymysql.connect(host='127.0.0.1', user='root', password='abc123', port=3306, database='py1011') 9 self.cursor = self.db.cursor() 10 # 執行modify(修改)相關的操作 11 def execute_modify_mysql(self, sql): 12 self.cursor.execute(sql) 13 self.db.commit() 14 # 魔術方法, 析構化 ,析構函數 15 def __del__(self): 16 self.cursor.close() 17 self.db.close() 18 19 headers = { 20 # 使用抓包工具分析發送數據請求到json格式的cookie數據,這是此次動態抓取的重點 21 'Cookie': xq_a_token=584d0cf8d5a5a9809761f2244d8d272bac729ed4; xq_r_token=98f278457fc4e1e5eb0846e36a7296e642b8138a; 22 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36', 23 } 24 url = 'https://xueqiu.com/v4/statuses/public_timeline_by_category.json?since_id=-1&max_id=-1&count=10&category=111' 25 26 response = requests.get(url,headers=headers) 27 28 res_dict = json.loads(response.text) 29 30 list_lsit = res_dict['list'] 31 32 db ={} 33 for list_item_dict in list_lsit: 34 data_dict = json.loads(list_item_dict['data']) 35 36 db['id'] = data_dict['id'] 37 db['title'] = data_dict['title'] 38 db['description'] = data_dict['description'] 39 db['target'] = data_dict['target'] 40 try: 41 sql = 'insert into xueqiu (uid,title,description,target) values ("{id}","{title}","{description}","{traget}")'.fromart(**db) 42 mc = mysql_conn() 43 mc.execute_modify_mysql(sql) 44 except: 45 pass