資源簡介
新浪財經24小時python爬蟲程序,內置自動推送到企業微信的群機械人的功能。適合微信企業群使用。爬蟲僅供個人學習研究python使用,請勿使用于商業或非法用途。
代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
‘‘‘
version:2.0
代碼重新架構,把腳本封裝為函數以方便處理數據
增加了測試模塊,以防止網絡波動導致的代碼運行中斷
‘‘‘
lastdateid?=?‘0‘
import?requests
import?json
import?time
import?sys
#?獲取最新消息的地址
base_url_new?=?‘http://zhibo.sina.com.cn/api/zhibo/feed?\
????????????callback=jQuery0&page=1&page_size=1&zhibo_id=152\
????????????&tag_id=0&dire=f&dpc=1&pagesize=1&_=0%20Request%20Method:GET‘
#?自定義js提取頁
‘‘‘
輸入請用str格式
oldnum_str:此數字或者是以現在為計時之前的頁數
thispagesize:此次取的js數據頁的數據數
oldpagesize:原來的js數據頁的數據數目
‘‘‘
‘‘‘
#此url的數據中會存在thispagesize_str條信息,比最新信息早??oldnum_str*?oldpagesize_str條
#oldnum_str?max?527999?
‘‘‘
def?myurl(oldnum_str?thispagesize_str?oldpagesize_str):
????my_url_a?=?r‘http://zhibo.sina.com.cn/api/zhibo/feed?\
????????????????????callback=jQuery0&page=‘
????my_url_b?=?r‘&page_size=‘
????my_url_c?=?r‘&zhibo_id=152&tag_id=0&dire=f&dpc=1&pagesize=‘
????my_url_d?=?r‘&_=0%20Request%20Method:GET‘
????my_url?=?my_url_a?+?oldnum_str?+?my_url_b?+?thispagesize_str?+?my_url_c?+?oldpagesize_str?+?my_url_d??#?獲取往前的第n條消息
????return?my_url
i?=?1??#?本代碼運行后得到的數據量標號
n?=?1??#?等待時間標號一個為5s
#?從js數據包中獲得json數據
def?get_json_str(base_url):
????json_str?=?‘‘
????try:
????????response?=?requests.get(base_url?timeout=5)
????????html?=?response.text
????????html_cl?=?html[12:-14]
????????html_json?=?eval(html_cl)
????????json_str?=?json.dumps(html_json)
????except?Connectionerror:
????????print(‘get_json_str得到數據時網絡連接有問題,未得到json數據‘)??#?此處數據穿送出去為了后期處理
????except?UnboundLocalError:
????????print(‘get_json_str您的電腦休眠導致連接中斷‘)??#?此處數據穿送出去為了后期處理
????except?Exception?as?errorname1:
????????print(‘get_json_str未收錄錯誤類型,請檢查網絡通斷錯誤位置:‘?errorname1)
????????#?print(errorname1)#?此處數據穿送出去為了后期處理‘‘‘
????finally:
????????return?json_str
‘‘‘
json?數據解析函數?
輸入:json類型的str數據
數出:以數據id作為key的字典
‘‘‘
def?json_str_analysis(json_date):
????date_dic?=?{}
????try:
????????python_dic?=?json.loads(json_date)??#?先拆分為主字典
????????list_str?=?python_dic[“result“][‘data‘][‘feed‘][‘list‘]??#?取數據列表
????????‘‘‘
????????重新整定字典
????????date_dic=
????????????{數據在新浪數據庫的id:{‘id‘:?????????
?????????????????????????????????‘rich_text‘:????
?????????????????????????????????‘create_time‘:????
?????????????????????????????????‘tag‘:{}????????????
?????????????????????????????????}}
????????‘‘‘
????????for?list_dic?in?list_str:??#?對list的多組數據解析
????????????need_option?=?[‘id‘?‘rich_text‘?‘create_time‘?‘tag‘]??#?定義需求關鍵詞
????????????for?listkey?in?list(list_dic.keys()):??#?字典在遍歷的時候不能修改元素,此處先編程列表在變回字典
????????????????if?listkey?not?in?need_option:
????????????????????list_dic.pop(listkey)
????????????date_dic[list_dic[‘id‘]]?=?list_dic
????except?ValueError:
????????print(‘json_str_analysis??json數據格式不對無法解析‘)
????except?Exception?as?errorname2:??#?將報錯存儲在errorname2中
????
- 上一篇:基于python實現的ICA過程
- 下一篇:python實現BM匹配算法
評論
共有 條評論