基於requests模塊發起ajax的get請求
需求:爬取豆瓣電影分類排行榜 https://movie.douban.com/中的電影詳情數據
用抓包工具捉取 使用ajax加載頁面的請求
鼠標往下下滾輪拖動頁面,會加載更多的電影信息,這個局部刷新是當前頁面發起的ajax請求,
用抓包工具捉取頁面刷新的ajax的get請求,捉取滾輪在最底部時候發起的請求
這個get請求是本次發起的請求的url
ajax的get請求攜帶參數
獲取響應內容不再是頁面數據,是json字符串,是通過異步請求獲取的電影詳情信息
start和limit參數 需要注意,改變這兩個參數獲取的電影詳情不一樣
import requests import json # 指定ajax-get請求的url(通過抓包進行獲取) url = 'https://movie.douban.com/j/chart/top_list?' # 封裝ajax的get請求攜帶的參數(從抓包工具中獲取) 封裝到字典 param = { 'type': '13', 'interval_id': '100:90', 'action': '', 'start': '20', # 從第20個電影開始獲取詳情 'limit': '20', # 獲取多少個電影詳情 # 改變這兩個參數獲取的電影詳情不一樣 } # 定制請求頭信息,相關的頭信息必須封裝在字典結構中 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', } # 發起ajax的get請求還是用get方法 response = requests.get(url=url,params=param,headers=headers) # 獲取響應內容:響應內容為json字符串 data = response.text data = json.loads(data) for data_dict in data: print(data_dict["rank"],data_dict["title"]) ''' 21 芙蓉鎮 22 沉靜如海 23 淘金記 24 馬戲團 25 情迷意亂 26 士兵之歌 27 戰爭與和平 28 怦然心動 29 大話西游之月光寶盒 30 羅馬假日 31 音樂之聲 32 一一 33 雨中曲 34 我愛你 35 莫娣 36 卡比利亞之夜 37 婚姻生活 38 本傑明·巴頓奇事 39 情書 40 春光乍泄 '''
從21個電影開始獲取信息,總共獲取20個電影詳情信息