python爬蟲 基于requests模塊發(fā)起ajax的get請求實現(xiàn)解析
基于requests模塊發(fā)起ajax的get請求
需求:爬取豆瓣電影分類排行榜 https://movie.douban.com/中的電影詳情數(shù)據(jù)
用抓包工具捉取 使用ajax加載頁面的請求
鼠標(biāo)往下下滾輪拖動頁面,會加載更多的電影信息,這個局部刷新是當(dāng)前頁面發(fā)起的ajax請求,
用抓包工具捉取頁面刷新的ajax的get請求,捉取滾輪在最底部時候發(fā)起的請求
這個get請求是本次發(fā)起的請求的url
ajax的get請求攜帶參數(shù)
獲取響應(yīng)內(nèi)容不再是頁面數(shù)據(jù),是json字符串,是通過異步請求獲取的電影詳情信息
start和limit參數(shù) 需要注意,改變這兩個參數(shù)獲取的電影詳情不一樣
import requests import json # 指定ajax-get請求的url(通過抓包進行獲?。? url = 'https://movie.douban.com/j/chart/top_list?' # 封裝ajax的get請求攜帶的參數(shù)(從抓包工具中獲取) 封裝到字典 param = { 'type': '13', 'interval_id': '100:90', 'action': '', 'start': '20', # 從第20個電影開始獲取詳情 'limit': '20', # 獲取多少個電影詳情 # 改變這兩個參數(shù)獲取的電影詳情不一樣 } # 定制請求頭信息,相關(guān)的頭信息必須封裝在字典結(jié)構(gòu)中 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36', } # 發(fā)起ajax的get請求還是用get方法 response = requests.get(url=url,params=param,headers=headers) # 獲取響應(yīng)內(nèi)容:響應(yīng)內(nèi)容為json字符串 data = response.text data = json.loads(data) for data_dict in data: print(data_dict["rank"],data_dict["title"]) ''' 芙蓉鎮(zhèn) 沉靜如海 淘金記 馬戲團 情迷意亂 士兵之歌 戰(zhàn)爭與和平 怦然心動 大話西游之月光寶盒 羅馬假日 音樂之聲 一一 雨中曲 我愛你 莫娣 卡比利亞之夜 婚姻生活 本杰明·巴頓奇事 情書 春光乍泄 '''
從21個電影開始獲取信息,總共獲取20個電影詳情信息
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
django xadmin action兼容自定義model權(quán)限教程
這篇文章主要介紹了django xadmin action兼容自定義model權(quán)限教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Python并發(fā)編程協(xié)程(Coroutine)之Gevent詳解
這篇文章主要介紹了Python并發(fā)編程協(xié)程(Coroutine)之Gevent詳解,具有一定借鑒價值,需要的朋友可以參考下2017-12-12使用python flask框架開發(fā)圖片上傳接口的案例詳解
剛領(lǐng)導(dǎo)安排任務(wù),需求是這樣的開發(fā)一個支持多格式圖片上傳的接口,并且將圖片壓縮,支持在線預(yù)覽圖片,下面小編分享下使用python flask框架開發(fā)圖片上傳接口的案例詳解,感興趣的朋友一起看看吧2022-04-04Python辦公自動化之JSOM數(shù)據(jù)處理與SQL Server數(shù)據(jù)庫操作
這篇文章主要為大家詳細(xì)介紹了Python辦公自動化中JSOM數(shù)據(jù)處理與SQL Server數(shù)據(jù)庫操作的相關(guān)知識,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考下2024-01-01Python中super().__init__()測試以及理解
__init__()一般用來創(chuàng)建對象的實例變量,或一次性操作,super()用于調(diào)用父類的方法,可用來解決多重繼承問題,下面這篇文章主要給大家介紹了關(guān)于Python中super().__init__()測試及理解的相關(guān)資料,需要的朋友可以參考下2021-12-12Python寫的一個定時重跑獲取數(shù)據(jù)庫數(shù)據(jù)
本文給大家分享基于python寫的一個定時重跑獲取數(shù)據(jù)庫數(shù)據(jù)的方法,非常不錯,具有參考借鑒價值,需要的朋友參考下2016-12-12