Python爬蟲04_Requests豆瓣電影爬取

一、 爬取豆瓣電影排行榜數據

import requests
import json

url = ‘https://movie.douban.com/j/chart/top_list’
param = {
‘type’:‘24’,
‘interval_id’:‘100:90’,
‘action’:‘’,
‘start’:‘0’, #從庫中的第幾部電影去取
‘limit’:‘20’,
}
headers = {
‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0’
}
response = requests.get(url=url,params=param,headers=headers)
list_data = response.json()
fp = open(‘e:/Reptile/douban.json’,‘w’,encoding=‘utf-8’)
json.dump(list_data,fp=fp,ensure_ascii=False)

print(‘over!!!’)

二、爬取數據時頁面數據分析的重要性

在真正寫爬蟲之前,必須先做一件事:肉眼+工具“觀察”頁面,搞清楚數據到底以什么形式存在、藏在哪兒、怎樣才能拿到。下面給你一張“觀察清單”,按圖索驥即可。
1. 先分清“頁面呈現”≠“原始數據”

你在瀏覽器里看到的實際在網絡層傳輸的可能
表格/列表/文字HTML 片段、JSON、CSV、二進制圖片/文件
點擊“加載更多”AJAX 異步請求返回 JSON
無刷新翻頁后端接口分頁參數(?page=2
圖片懶加載data-src 真實地址延遲替換 src

2. 四步現場勘查(用瀏覽器開發者工具 F12)
① Elements(元素)面板
看 DOM 結構:數據是直接嵌在 HTML 標簽里,還是通過 JS 動態插入?
檢查關鍵節點:id、class、data-* 屬性,方便后面寫 XPath/CSS 選擇器。
② Network(網絡)面板
刷新頁面,篩選 XHR 或 Fetch 請求:
有沒有 .json 結尾的接口?
請求參數里是否有 page、size、token?
看響應頭:
Content-Type: application/json → 純接口,直接抓。
Content-Type: text/html → 服務端渲染,用 HTML 解析。
Content-Type: image/* → 二進制流,用 requests.get().content 保存。
看響應體(Preview/Response 標簽):
是 HTML 片段?還是 JSON 數組?還是 base64 圖片?
③ Sources(源碼)面板
全局搜索關鍵字(Ctrl+Shift+F):
搜接口關鍵詞:api/v1/list、/search?keyword=。
搜加密/混淆字段:token、sign、_t。
定位 JS 變量:數據是否藏在 window.INITIAL_STATE 或某個全局變量?
④ Application(應用)面板
看 Cookies/LocalStorage/SessionStorage:
有沒有身份令牌(sessionid、jwt)?
看 IndexedDB 是否緩存了離線數據。
3. 常見數據藏身方式及獲取手段對照表

數據呈現方式數據真實位置獲取方式
普通網頁列表HTML 標簽中requests.get() + BeautifulSoup 解析
下拉加載更多異步 JSON 接口直接 requests.get(api_url) 拿 JSON
圖片懶加載data-src 屬性提取真實地址再下載
加密參數JS 生成 sign① 摳算法 ② 用 PyExecJS/Node 復現 ③ 直接 Selenium
登錄后數據Cookie 鑒權POST /login 拿 Cookie,后續帶 Cookie 訪問
無限滾動分頁 JSON 接口找到 page= 參數循環請求
大文件下載二進制流stream=True 分塊保存
字體反爬自定義字體文件下載字體 → 映射字符 → 替換

4. 一句話口訣
“先 F12 看 Network,接口優先,HTML 兜底,JS 加密就拆算法。”

不確定類型?把 Response 內容復制到 JSON.cn 在線校驗,看是否合法 JSON。
需要批量測試?用 Postman 或 curl 手動調接口,確認參數和返回格式。
遇到 403/401?檢查 Headers 里的 User-Agent、Referer、Authorization 是否缺失。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916852.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916852.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916852.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

工業物聯網模塊運營指南?

一、運營目標 工業物聯網模塊運營的核心目標在于通過高效運作,實現提高工業設備運行效率、降低生產成本、推動生產過程智能化管理,進而提升企業的整體競爭力。這一目標是后續所有運營工作的出發點和落腳點,為各項運營環節提供方向指引。 二、關鍵運營環節及做法 (一)設…

9.項目起步(3)

1項目起步-靜態資源初始化 和 Error Lens 安裝圖片資源和樣式資源error lens 安裝2項目起步-scss文件自動導入為什么要自動導入自動導入配置scss變量自動導入$xtxColor: #27ba9b; $helpColor: #e26237; $sucColor: #1dc779; $warnColor: #ffb302; $priceColor: #cf4444;css: {p…

MCP提示詞工程:上下文注入的藝術與科學

MCP提示詞工程:上下文注入的藝術與科學 🌟 Hello,我是摘星! 🌈 在彩虹般絢爛的技術棧中,我是那個永不停歇的色彩收集者。 🦋 每一個優化都是我培育的花朵,每一個特性都是我放飛的蝴蝶…

字節跳動GR-3:可泛化、支持長序列復雜操作任務的機器人操作大模型(技術報告解讀)

1.總結 GR-3 是一個大規模的視覺 - 語言 - 動作(VLA)模型。它對新物體、新環境以及含抽象概念的新指令展現出較好的泛化能力。此外,GR-3 支持少量人類軌跡數據的高效微調,可快速且經濟地適應新任務。GR-3 在處理長周期和靈巧性任…

713. 乘積小于 K 的子數組

中等 給你一個整數數組 nums 和一個整數 k ,請你返回子數組內所有元素的乘積嚴格小于 k 的連續子數組的數目。 示例 1: 輸入:nums [10,5,2,6], k 100 輸出:8 解釋:8 個乘積小于 100 的子數組分別為:[10…

【算法】 SM2、FSRS、SuperMemo算法實現艾賓浩斯記憶曲線,通過以上算法你也可以開發出單詞記憶軟件

有那些算法可以實現艾賓浩斯單詞記憶 用戶: 有那些算法可以實現艾賓浩斯單詞記憶 元寶: 以下是基于 艾賓浩斯遺忘曲線 的智能記憶算法實現方案,結合 間隔重復算法 與 現代機器學習技術,提供從理論到實踐的完整解決方案: 一、核心算法原理 1. …

SQL167 連續簽到領金幣

SQL167 連續簽到領金幣 題目描述 用戶行為日志表 tb_user_log iduidartical_idin_timeout_timesign_in110102021-07-07 10:00:002021-07-07 10:00:091210102021-07-08 10:00:002021-07-08 10:00:091310102021-07-09 10:00:002021-07-09 10:00:42141010 2021-07-10 10:00:00 …

PHP性能優化與高并發處理:從基礎到高級實踐

引言 在當今高流量的互聯網環境中,PHP應用的性能優化變得至關重要。本文將全面探討PHP性能優化的各個層面,從基礎優化技巧到高級并發處理方案,幫助開發者構建高性能的PHP應用。 基礎性能優化 OPcache配置優化 ; php.ini 推薦OPcache配置 [opcache] opcache.enable=1 opc…

C++ std::map erase() 和迭代器詳解:常見面試陷阱與深入理解

在使用 C 的 std::map 時,配合 erase() 和迭代器的使用是一個經典面試點,也是實際開發中經常出錯的地方。本文將深入講解 erase() 的行為、end() 的本質以及迭代器失效規則,幫助你寫出更健壯的代碼。1. erase(it) 的行為當你使用 erase(it) 刪…

求職招聘小程序源碼搭建招聘小程序開發定制人力資源系統

身份:求職者、企業求職者:完善簡歷,簡歷投遞企業:企業入駐,查看簡歷企業會員:半年 、年度 權益:每日發布條數、刷新條數,簡歷下載數量聊天:求職者可以和企業聊天招聘會…

【31】C# WinForm入門到精通 ——保存文件SaveFileDialog 【屬性、方法、事件、實例、源碼】

WinForm 是 Windows Form 的簡稱,是基于 .NET Framework 平臺的客戶端(PC軟件)開發技術,是 C# 語言中的一個重要應用。 .NET 提供了大量 Windows 風格的控件和事件,可以直接拿來使用。 本專欄內容是按照標題序號逐漸…

socket網絡編程(1)

socket網絡編程(1) 設計echo server進行接口使用 生成的Makefile文件如下 .PHONY:all all:udpclient udpserverudpclient:UdpClient.ccg -o $ $^ -stdc17 -static udpserver:UdpServer.ccg -o $ $^ -stdc17.PHONY:clean clean:rm -f udpclient udpserver…

數據集:機器學習的基石

三、數據集:機器學習的基石1. sklearn 玩具數據集:快速入門的理想選擇1.1 玩具數據集的特點與價值sklearn 內置的玩具數據集(Toy Datasets)是機器學習入門的絕佳資源。這類數據集通常具有以下特點:數據量小&#xff1a…

SQL排查、分析海量數據以及鎖機制

1. SQL排查 1.1 慢查詢日志: mysql提供的一種日志記錄, 用戶記錄MySQL中響應時間超過閾值的SQL語句(long_query_time, 默認10秒), 慢查詢日志默認是關閉的, 建議開發調優時打開, 最終部署的時候關閉 1.1.1 檢查是否開啟了慢查詢日志 show variables like %slow_query_log%;臨…

conda 安裝prokka教程

本章教程,記錄如何在wsl2+ubuntu下載通過conda安裝prokka軟件包。 Prokka 是一個快速的、功能強大的基因組注釋工具,特別適用于細菌基因組的注釋。它能夠自動化完成從基因組序列到功能注釋的整個流程,包括基因的識別、功能預測和注釋,并且支持多種文件格式輸出,廣泛應用于…

CSS3 圓角

CSS3 圓角 引言 CSS3圓角是現代網頁設計中非常重要的一項功能,它使得網頁元素的外觀更加平滑、美觀。本文將詳細介紹CSS3圓角的概念、實現方法以及相關屬性,幫助您更好地掌握這一技巧。 CSS3圓角概念 CSS3圓角指的是通過CSS3屬性為元素(如div…

牛頓-拉夫森法求解非線性方程組

牛頓-拉夫森法(Newton-Raphson method)是一種用于求解非線性方程組的迭代方法。該方法通過線性化非線性方程組,并逐步逼近方程組的解。以下是牛頓-拉夫森法求解非線性方程組的詳細步驟和MATLAB實現。 1. 牛頓-拉夫森法的基本原理 對于非線性方…

Windows系統使用命令生成文件夾下項目目錄樹(文件結構樹)的兩種高效方法

Windows系統使用命令生成文件夾下項目目錄樹(文件結構樹)的兩種高效方法前言:**方法一:tree 命令 —— 快速生成經典目錄樹****方法二:PowerShell —— 可以精準過濾“降噪”的命令**這份列表非常精煉,只包…

react中暴露事件useImperativeHandle

注:本頁面模塊主要是使用 useImperativeHandle ,一、概述1、要點hooks 中的暴露事情件方法useImperativeHandle,需要和forwardRef、ref 結合一起使用。1、外層校驗的時候會校驗里面所有需要校驗的驗證2、基礎使用二、demo案例1、場景1、彈框打…

【論文閱讀】-《RayS: A Ray Searching Method for Hard-label Adversarial Attack》

RayS:一種用于硬標簽對抗攻擊的光線搜索方法 Jinghui Chen University of California, Los Angeles jhchencs.ucla.edu Quanquan Gu University of California, Los Angeles qgucs.ucla.edu 原文鏈接:https://arxiv.org/pdf/2006.12792 摘要 深度神經…