當網站頁面是使用了AJAX架構的時候
AJAX是動態數據,經常是返回json數據,這時候就要分析返回的json數據包。
所以json數據包的解析是必要的。
獲取數據必須要靈活使用網頁調試工具
目前的瀏覽器用Chrome,肯定是能夠更好的跟蹤調試要追蹤的頁面內容。
可以專門找個帖子看兩眼,或者自己直接打開這個瀏覽器,然後從右上角的菜單,進入開發者工具,然後就可以看到下面的工具了。
這裡面有個XHR,專門用來看ajax的數據的。
如下圖裡,進入network菜單,然後再點下XHR,可以看到各個請求與響應數據。
裡面這個webid非常珍貴。
肯定可以想象,website是有各自預防手段的
def getdata(url, headers, cookies)
獲取數據的基本參數是這樣
這裡的url可以直接用瀏覽器訪問下後獲取,URL裡面有重要的參數_sigXXnatureXX,aXsXX,這兩個是專門用來屏蔽的了。XX去掉。應該是有時效的參數。
但肯定是有短期辦法。
圖裡的cookie部分,是一個重要參數。
作者就是在代碼中使用的這個參數cookies = {'XXtt_XXwebXXid': '68058XX60779XX611653639'}
XX要去掉。
這個參數是要自己去用瀏覽器獲得的,不可複製的,哈哈,不要傻傻的複製。
用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'])
重要的是與大家交流,拋磚引玉。
一塊交流遇到的問題,打造實用代碼。