基于requests模塊發(fā)起ajax的get請求
需求:爬取豆瓣電影分類排行榜 https://movie.douban.com/中的電影詳情數(shù)據(jù)
用抓包工具捉取 使用ajax加載頁面的請求
鼠標往下下滾輪拖動頁面,會加載更多的電影信息,這個局部刷新是當(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í)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

