基于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í)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
