天天看點

python爬蟲請求子產品_python爬蟲 基于requests子產品發起ajax的get請求實作解析

基于requests子產品發起ajax的get請求

需求:爬取豆瓣電影分類排行榜 https://movie.douban.com/中的電影詳情資料

用抓包工具捉取 使用ajax加載頁面的請求

python爬蟲請求子產品_python爬蟲 基于requests子產品發起ajax的get請求實作解析
python爬蟲請求子產品_python爬蟲 基于requests子產品發起ajax的get請求實作解析

滑鼠往下下滾輪拖動頁面,會加載更多的電影資訊,這個局部重新整理是目前頁面發起的ajax請求,

用抓包工具捉取頁面重新整理的ajax的get請求,捉取滾輪在最底部時候發起的請求

這個get請求是本次發起的請求的url

python爬蟲請求子產品_python爬蟲 基于requests子產品發起ajax的get請求實作解析

ajax的get請求攜帶參數

python爬蟲請求子產品_python爬蟲 基于requests子產品發起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個電影開始擷取資訊,總共擷取20個電影詳情資訊

以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援。