Python3 爬虫学习笔记 C03 【Ajax 数据爬取】
Python3 爬蟲學(xué)習(xí)筆記第三章 —— 【Ajax 數(shù)據(jù)爬取】
文章目錄
- 【3.1】Ajax 簡介
- 【3.2】解析真實(shí)地址提取
【3.1】Ajax 簡介
Ajax — Asynchronous Javascript And XML(異步 JavaScript 和 XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)??梢栽诓恢匦录虞d整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新。
【3.2】解析真實(shí)地址提取
以豆瓣電影動(dòng)作片排行榜為例,地址為: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)得到的數(shù)據(jù)里面我們并沒有找到電影相關(guān)信息:
再次分析頁面,發(fā)現(xiàn)鼠標(biāo)下滑的時(shí)候,頁面不刷新,URL 也不變,但是會(huì)加載新數(shù)據(jù),那么此處就運(yùn)用了 Ajax,可以使用抓包工具或者瀏覽器控制臺(tái)來捕獲 Ajax 接口,獲取其真實(shí)地址,XHR 是 Ajax 特殊的請(qǐng)求類型,返回的是 json 數(shù)據(jù),利用瀏覽器控制臺(tái)過濾 XHR,隨便點(diǎn)擊一條請(qǐng)求,可以看到其 Request URL,也就是真實(shí)地址,點(diǎn)擊 Preview 就可以看到返回的 json 數(shù)據(jù)。
同樣,我們可以使用 Fiddler 抓包軟件抓取 Ajax 接口:
分析其真實(shí)地址為:https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=20&limit=20 ,多下滑幾次,只有 start 參數(shù)發(fā)生了改變,觀察變化可知:每一次頁面將多出20個(gè)電影信息,start 為從第幾個(gè)電影開始,由此就不難進(jìn)行數(shù)據(jù)抓取了
代碼:
import requestsurl = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&'page = int(input('請(qǐng)輸入想要第幾頁的數(shù)據(jù):')) 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)運(yùn)行代碼即可得到電影排行信息:
總結(jié)
以上是生活随笔為你收集整理的Python3 爬虫学习笔记 C03 【Ajax 数据爬取】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日本钢铁巨头化学药品大规模泄漏:2.7公
- 下一篇: 极致轻巧的商务本!新华三H3CBook