python | 爬蟲筆記(六)- Ajax數據爬取

request獲得和瀏覽器數據不一樣
數據加載是異步加載方式,原始頁面不包含數據,加載完後會會再向服務器請求某個接口獲取數據,而後數據再被處理才呈現到網頁上,這其實就是發送了一個 Ajax 請求。這樣Web 開發上能夠作到先後端分離,並且下降服務器直接渲染頁面帶來的壓力。
所以遇到這種狀況,用requests模擬ajax請求

6.1 Ajax 

1- 介紹
Ajax,全稱爲 Asynchronous JavaScript and XML,即異步的 JavaScript 和 XML。是利用 JavaScript 在保證頁面不被刷新、頁面連接不改變的狀況下與服務器交換數據並更新部分網頁的技術。
實例:頁面刷新後加載
 
2- 基本原理
1)發送請求
新建了 XMLHttpRequest 對象,而後調用了onreadystatechange 屬性設置了監聽,而後調用 open() 和 send() 方法向服務器發送了一個請求,獲得服務器返回響應,並解析
2)解析內容
獲得響應以後,onreadystatechange 屬性對應的方法便會被觸發,此時利用 xmlhttp 的 responseText 屬性即可以取到響應的內容。HTML或者Json
3)渲染網頁
解析完響應內容以後,就能夠調用 JavaScript 來針對解析完的內容對網頁進行下一步的處理了。DOM操做
原理,即須要知道請求如何發送、發往哪裏,發了哪些參數 

6.2 Ajax分析方法

1-查看請求
2-過濾請求

6.3 結果提取

1-分析請求
GET類型請求:type、value、containerid、page。
能夠分析請求,推斷出參數的規律
 
2- 分析響應
 待補充
 

##本系列內容爲《python3爬蟲開發實戰》學習筆記。本系列博客列表以下:html

(零)學習路線python

(一)開發環境配置ajax

(二)爬蟲基礎後端

(三)基本庫使用瀏覽器

(四)解析庫使用服務器

(五)數據存儲前後端分離

(六)Ajax數據爬取異步

(七)動態渲染頁面爬取Selenium學習

持續更新...ui

對應代碼請見:..

相關文章
相關標籤/搜索