Python3 爬虫学习笔记 C03 【Ajax 数据爬取】
Python3 爬蟲學習筆記第三章 —— 【Ajax 數據爬取】
文章目錄
- 【3.1】Ajax 簡介
- 【3.2】解析真實地址提取
【3.1】Ajax 簡介
Ajax — Asynchronous Javascript And XML(異步 JavaScript 和 XML),是指一種創建交互式網頁應用的網頁開發技術。可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。
【3.2】解析真實地址提取
以豆瓣電影動作片排行榜為例,地址為:https://movie.douban.com/typerank?type_name=%E5%8A%A8%E4%BD%9C&type=5&interval_id=100:90&action= ,首先使用常用方法來爬取電影信息:
import requestsurl = 'https://movie.douban.com/typerank?type_name=%E5%8A%A8%E4%BD%9C&type=5&interval_id=100:90&action='headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"} response = requests.get(url, headers=headers)print(response.text)得到的數據里面我們并沒有找到電影相關信息:
再次分析頁面,發現鼠標下滑的時候,頁面不刷新,URL 也不變,但是會加載新數據,那么此處就運用了 Ajax,可以使用抓包工具或者瀏覽器控制臺來捕獲 Ajax 接口,獲取其真實地址,XHR 是 Ajax 特殊的請求類型,返回的是 json 數據,利用瀏覽器控制臺過濾 XHR,隨便點擊一條請求,可以看到其 Request URL,也就是真實地址,點擊 Preview 就可以看到返回的 json 數據。
同樣,我們可以使用 Fiddler 抓包軟件抓取 Ajax 接口:
分析其真實地址為:https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=20&limit=20 ,多下滑幾次,只有 start 參數發生了改變,觀察變化可知:每一次頁面將多出20個電影信息,start 為從第幾個電影開始,由此就不難進行數據抓取了
代碼:
import requestsurl = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&'page = int(input('請輸入想要第幾頁的數據:')) data = {'start': (page - 1)*20,'limit': '20', } headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36', } response = requests.get(url, params=data, headers=headers) print(response.text)運行代碼即可得到電影排行信息:
總結
以上是生活随笔為你收集整理的Python3 爬虫学习笔记 C03 【Ajax 数据爬取】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日本钢铁巨头化学药品大规模泄漏:2.7公
- 下一篇: 【Python 标准库学习】容器数据类型