用python解析網絡新聞JSon數據,業精於勤

當網站頁面是使用了AJAX架構的時候

AJAX是動態數據,經常是返回json數據,這時候就要分析返回的json數據包。

所以json數據包的解析是必要的。

獲取數據必須要靈活使用網頁調試工具

目前的瀏覽器用Chrome,肯定是能夠更好的跟蹤調試要追蹤的頁面內容。

可以專門找個帖子看兩眼,或者自己直接打開這個瀏覽器,然後從右上角的菜單,進入開發者工具,然後就可以看到下面的工具了。

這裡面有個XHR,專門用來看ajax的數據的。

如下圖裡,進入network菜單,然後再點下XHR,可以看到各個請求與響應數據。

裡面這個webid非常珍貴。

用python解析網絡新聞JSon數據,業精於勤

肯定可以想象,website是有各自預防手段的

def getdata(url, headers, cookies)

獲取數據的基本參數是這樣

這裡的url可以直接用瀏覽器訪問下後獲取,URL裡面有重要的參數_sigXXnatureXX,aXsXX,這兩個是專門用來屏蔽的了。XX去掉。應該是有時效的參數。

但肯定是有短期辦法。

圖裡的cookie部分,是一個重要參數。

作者就是在代碼中使用的這個參數cookies = {'XXtt_XXwebXXid': '68058XX60779XX611653639'}

XX要去掉。

這個參數是要自己去用瀏覽器獲得的,不可複製的,哈哈,不要傻傻的複製。

用python解析網絡新聞JSon數據,業精於勤

用pycharm調試的時候用到的三個庫

import requests

import json

from openpyxl import Workbook

小技巧就是把光標放到比如requests前面,然後按alt+enter就可以出現菜單,安裝這個庫了。

如果訪問速度太慢,就用國內的鏡像,舉例如下:XX可以網絡查到豆瓣,阿里,清華的鏡像

pip install -i https:XX --trusted-host YY requests

略微示意下關鍵代碼

可以去代碼網站上查找得到哈,(我們這裡實在閱讀代碼不方便,審核也麻煩)

def main(max_behot_time, title,

source_url, s_url, source, media_url):

# 主函數

for i in range(3): # 此處的數字類似於你刷頁面的次數

ascp = get_as_XXcXXp() # 獲取XXaXXs和cXXp參數的函數,xx去掉

demo = getdata(start_url, headers, cookies)

print(demo)

# time.sleep(1)

for j in range(len(demo['data'])):

# print(demo['data'][j]['title'])

if demo['data'][j]['title'] not in title:

# 獲取title

title.append(demo['data'][j]['title'])

重要的是與大家交流,拋磚引玉。

用python解析網絡新聞JSon數據,業精於勤

一塊交流遇到的問題,打造實用代碼。


分享到:


相關文章: