python爬蟲 基于requests模塊發(fā)起ajax的get請求實現(xiàn)解析
基于requests模塊發(fā)起ajax的get請求
需求:爬取豆瓣電影分類排行榜 https://movie.douban.com/中的電影詳情數(shù)據(jù)
用抓包工具捉取 使用ajax加載頁面的請求


鼠標往下下滾輪拖動頁面,會加載更多的電影信息,這個局部刷新是當前頁面發(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)文章
解決pytorch多GPU訓(xùn)練保存的模型,在單GPU環(huán)境下加載出錯問題
這篇文章主要介紹了解決pytorch多GPU訓(xùn)練保存的模型,在單GPU環(huán)境下加載出錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python的“二維”字典 (two-dimension dictionary)定義與實現(xiàn)方法
這篇文章主要介紹了Python的“二維”字典 (two-dimension dictionary)定義與實現(xiàn)方法,結(jié)合實例形式分析了Python模擬實現(xiàn)類似二維數(shù)組形式的二維字典功能,需要的朋友可以參考下2016-04-04
理解深度學(xué)習(xí)之深度學(xué)習(xí)簡介
這篇文章主要是關(guān)于深度學(xué)習(xí)的簡介,對大家學(xué)習(xí)了解機器深度學(xué)習(xí)有一定的幫助,以后會持續(xù)更新本系列,希望能為大家?guī)硪恍┦肇?,讓我們一起來看看下面的文章?/div> 2021-04-04
在PyCharm中遇到pip安裝 失敗問題及解決方案(pip失效時的解決方案)
這篇文章主要介紹了在PyCharm中遇到pip安裝失敗問題及解決方案(pip失效時的解決方案),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03最新評論

