python爬取豆瓣電影評論通用代碼

最近在自學python爬蟲,今天閑來無事,爬了一下豆瓣數據
這個網站對于初學者來說還是很友好的注意:有python環境的朋友運行的時候,要把cookie換成自己的
通用性:可以自己換不同的電影id進行數據爬取
Tip:sleep方法規避豆瓣反爬檢測
話不多說,看效果 

短評截圖:

影評截圖:

短評部分源碼:

import csv
import time
import requests
from bs4 import BeautifulSoupdef get_movie_name(movie_id, session):url = f'https://movie.douban.com/subject/{movie_id}/comments'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0','cookie': 'll="118212"; bid=rFaMYPh6RCA; _pk_id.100001.4cf6=78012081e6779ccd.1750580841.; __yadk_uid=3Gu8udJKmiPINxEc1pMqhsMt3iTILw5x; _vwo_uuid_v2=D1DDB86BDCAAC17D1AC0CE3E327C775A3|2cae6702ce2d9ebdd6552e7f91d2c447; viewed="36492148_31223437_37345711"; __utmz=223695111.1752599205.3.3.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmz=30149280.1753857983.17.10.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmc=30149280; _ga=GA1.1.1274053689.1750580849; _ga_RXNMP372GL=GS2.1.s1753945876$o1$g1$t1753946097$j14$l0$h0; __utmc=223695111; dbcl2="225204235:K9IRNx2LsCg"; ck=l51l; push_noty_num=0; push_doumail_num=0; __utmv=30149280.22520; frodotk_db="bcc9b11a4f11b72a365d134eed35257e"; 6333762c95037d16=mRYvowDmt1XwRDfRGGQV32WFhY7sBklBCONF%2B3p0iam9najnKjbryn3PdaKfalCR7jfxXLUo3suPF3L%2BzLioR1P2RRXONp7n%2FsFc3BbJRF5l9eOMC1IroX8VRsEm3mml0lenQXG9GCPyawm2QXVTyjEiJgHu9R%2B3czAtR11hFGJJwY2LL1sjEjH1vHbyiQ1ZhgiRc2htCncWoQUq2jenlFydIEFHZnp9ZcDgLq58rQF4vRlERDfo%2BTItp2mHWQEd2JpX1u%2BAqXqO1GBGW%2B0sMWeThO8xc6q0pQU2uycmv4toL%2FY7P9CT4w%3D%3D; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1753963128%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3Dj5LsrMjHtz4N71TPrjZZFswXuTN2I3JtWMVZOUA1JoavRFidVU8qEt3QhHh89lYn%26wd%3D%26eqid%3Dc34e9cd50159cadd0000000668768aa0%22%5D; _pk_ses.100001.4cf6=1; __utma=30149280.1274053689.1750580849.1753943729.1753963128.23; __utma=223695111.1607170658.1750580849.1753946099.1753963128.13; __utmb=223695111.0.10.1753963128; __utmb=30149280.6.10.1753963128; _TDID_CK=1753964509392'}res = session.get(url, headers=headers)soup = BeautifulSoup(res.text, 'html.parser')movie_name = soup.find('meta', attrs={'name': 'description'}).get('content')return movie_namedef get_short_comments(movie_id):global countt1 = time.time()session = requests.session()movie_name = get_movie_name(movie_id, session)print(f'{movie_name}-短評-開始爬取')f = open(f'{movie_name}_豆瓣.csv', mode='w', encoding='utf-8-sig', newline='')writer = csv.writer(f)writer.writerow(['序號', '用戶', '地點', '推薦度', '點贊數', '時間', '影評', '用戶主頁'])type = 'hml'  # h:好評,m:一般,l:差評data = []for t in range(3):for page in range(20):get_short_comments_detail(movie_id, type[t], page, session, data)print(f'(h:好評,m:一般,l:差評) 類型:{type[t]},成功寫入{count - 1}條')writer.writerows(data)f.close()session.close()t2 = time.time()print(f'{movie_name}-短評-爬取結束,共有{count - 1}條數據, 耗時:{(t2 - t1) / 60:.2f}分鐘')if __name__ == '__main__':movie_id = '36809864'  # 南京照相館 36809864 、 戲臺 35483395 、長安的荔枝 36185502count = 1 # 影評序號get_short_comments(movie_id)

影評部分源碼:

import csv
import random
import time
import requests
from bs4 import BeautifulSoupdef get_movie_info(movie_id, session, headers):main_url = f'https://movie.douban.com/subject/{movie_id}/reviews'resp = session.get(main_url, headers=headers)soup = BeautifulSoup(resp.text, 'html.parser')movie_name = soup.find('h1').text.split(' ')[0][:-3]max_count = soup.find('h1').text.split(' ')[1][1:-1]print(f'電影: {movie_name}')print(f'影評總數: {max_count}')return [movie_name, max_count]def creat_file(movie_name):f = open(f'影評/{movie_name}_豆瓣影評.csv', 'w', encoding='utf-8-sig', newline='')writer = csv.writer(f)writer.writerow(["影評id", "用戶", "ip地址", "時間", "推薦度", "星級", "標題", "影評", "影評中的圖片", "贊同", "反對", "收藏","轉發", "回應"])print(f'{movie_name},csv文件創建成功')fw = [f, writer]return fwdef get_data(movie_id):t1 = time.time()headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0','cookie': '_TDID_CK=1754050907914; 6333762c95037d16=iKYsKtNQiUl5kslkdyrAZG0WrN5mr8g856oYqDXKywvnAoRVHz4ciIxnMO811Vq4ttNsLQksxwroxQyWShHnAEbjmrRep%2BElkXKB%2BYpO2ULS6NMXtuqe%2FxfP3CmcWNNLo0hxT98%2BFU7sN8Vh8hc6DUvTHdya3aVNLMSg0RQw7ZJ805Rae0aT8YipKiYxwNGG7vVAE2%2FCdcqdZVDTnNgdGp0A2HS5%2F5Xd85gy8orfe2B3V75l2h5bUDZOLpkZ3kqBth%2FxWxZRWILDApqZfz0YYrdx3uxiIV352E%2BpnfTNJTPrBcFzMQBV9A%3D%3D; bid=rFaMYPh6RCA; _pk_id.100001.4cf6=78012081e6779ccd.1750580841.; __yadk_uid=3Gu8udJKmiPINxEc1pMqhsMt3iTILw5x; _vwo_uuid_v2=D1DDB86BDCAAC17D1AC0CE3E327C775A3|2cae6702ce2d9ebdd6552e7f91d2c447; viewed="36492148_31223437_37345711"; __utmz=223695111.1752599205.3.3.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; _ga=GA1.1.1274053689.1750580849; dbcl2="225204235:K9IRNx2LsCg"; push_noty_num=0; push_doumail_num=0; __utmv=30149280.22520; loc-last-index-location-id="108288"; ll="108288"; _ga_RXNMP372GL=GS2.1.s1753976615$o2$g1$t1753976764$j55$l0$h0; _ga_Y4GN1R87RG=GS2.1.s1753976779$o1$g1$t1753976791$j48$l0$h0; __utmz=30149280.1754045768.26.12.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; ap_v=0,6.0; ck=l51l; __utma=30149280.1274053689.1750580849.1754045768.1754050699.27; __utmb=30149280.0.10.1754050699; __utmc=30149280; __utma=223695111.1607170658.1750580849.1753975932.1754050699.16; __utmb=223695111.0.10.1754050699; __utmc=223695111; frodotk_db="0c8f56b0cff3fc5c25ae04126fdbf514"; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1754050700%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3Dj5LsrMjHtz4N71TPrjZZFswXuTN2I3JtWMVZOUA1JoavRFidVU8qEt3QhHh89lYn%26wd%3D%26eqid%3Dc34e9cd50159cadd0000000668768aa0%22%5D; _pk_ses.100001.4cf6=1',}session = requests.Session()movie_info = get_movie_info(movie_id, session, headers) # 返回 電影名、影評總數fw = creat_file(movie_info[0])# movie_info[1] = 40  # 默認獲取所有影評,想獲取多少條影評可以自己填,默認:每頁20條get_comments(movie_id, int(movie_info[1]), session, headers, fw[0], fw[1])t2 = time.time()print(f'成功獲取{movie_info[1]}條評論,耗時:{(t2-t1)/60:.2f}分鐘')if __name__ == '__main__':movie_id = 36438475  # 電影id, 南京照相館:36809864, 浪浪山小妖怪:36438475get_data(movie_id)

freelybill
源碼下載:24python爬蟲豆瓣短評和影評源代碼資源-CSDN下載

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

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

相關文章

構建屬于自己的第一個 MCP 服務器:初學者教程

為什么需要 MCP 服務器? 你是否遇到過這樣的場景:向 AI 助手(比如 GitHub Copilot)詢問 “北京今天的天氣”,得到的回復卻是 “我無法訪問實時天氣數據”? 這是因為大多數 AI 模型本身 “與世隔絕”—— 它…

個人項目介紹:語音識別小助手

一、項目內容 基于STM32F103RCT6制作了一款集語音識別、按鍵控制、信息顯示、溫濕度監測等多功能于一體的智能設備,滿足多樣化的交互需求。 二、個人工作內容 依據項目需求,選定 STM32F103RCT6 單片機、SU-03T語音識別模組、AHT25 溫濕度傳感器等核心元件…

【Django】-1- 開發項目搭建

一、PDM Django 搭建項目👇🎯 核心目標用 PDM(更現代的 Python 包管理工具),快速創建并管理 Django 項目(Web 框架),讓開發流程更絲滑?🧩 分步拆解1. 創建項目用 PDM 初…

c++:設計模式訓練

寫一個鳥類:有一個多態函數:run 寫一個企鵝類,繼承自鳥類:重寫 run 寫一個鴕鳥類,繼承自鳥類,重寫 run 寫一個老鷹類,繼承自鳥類,重寫run 寫一個鳥籠,能夠存放 不同的鳥…

配置Mybatis環境

配置Mybatis環境MyBatis是什么配置Mybatis環境MyBatis是什么 MyBatis 一個支持普通 SQL 查詢、存儲過程以及高級映射的持久層框架。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數和獲取結果集的工作,使得開發者可以更專注于 SQL 本身,而不必花費過多…

生產環境中基于Istio的Kubernetes多集群灰度發布架構實戰經驗分享

生產環境中基于Istio的Kubernetes多集群灰度發布架構實戰經驗分享 在大規模分布式微服務架構中,如何在多集群環境下平滑、安全地發布新版本,一直是保證高可用、高可靠的關鍵需求。本文以真實生產環境案例為基礎,分享我們團隊基于Istio Servic…

Kubernetes(k8s)之認識Pod

01了解Pod Pod是Kubernetes創建或部署的最小/最簡單的基本單位,一個Pod代表集群上正在運行的一個進程。 一個Pod封裝一個應用容器(也可以有多個容器),存儲資源、一個獨立的網絡IP以及管理控制容器運行方式的策略選項。它可能由單個容器或多個容器共享組成的資源。 Kubern…

Nginx服務做負載均衡網關

1. 概述 內部Nginx服務器做服務網關,代理后端應用服務,卸載ssl域名證書,將接收的https請求,轉發至后端http服務。華為防火墻負責NAT,啟用服務器負載均衡功能,將公網虛擬IP端口映射到內部多臺Nginx服務器上…

十三、請求響應-請求:日期參數和JSON參數

日期參數代碼:日期參數 //日期時間參數RequestMapping("/dataParam")public String dataParam(DateTimeFormat(pattern "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){System.out.println(updateTime);return "OK";}結果JSON參…

可信數據庫大會現場,TDengine 時序數據庫展示核電場景下的高性能與 AI 創新

設備在升級,場站在擴建,但數據系統卻還在“跟不上”。這正是許多核電企業在推進數字化轉型過程中最真實的感受。高頻采集、長周期存儲、精度要求高……這些構成了對數據庫系統的“煉獄級考驗”。在這樣一個背景下,國產數據庫的能力邊界正在被…

ctflearn-POST practice

靶場地址:165.227.106.113/post.php 解題: 一.分析題目 提示: 知道要用POST請求提交表單,看一下源碼信息 得到可能需要用post請求方式去提交表單,并且傳數據admin和password,這邊提供兩種方式 方法一&…

FPGA實現OV7670攝像頭圖像處理至VGA顯示器

本文還有配套的精品資源,點擊獲取 簡介:本項目基于FPGA技術,結合OV7670攝像頭傳感器進行視頻捕獲,經SDRAM存儲,并通過VGA顯示器展示。同時,集成了中值濾波算法提高圖像清晰度。該項目涉及數字圖像處理系…

使用python寫一套完整的智能體小程序

創建一個簡單的智能體(Agent)程序在人工智能和自動化任務中,智能體(Agent)是指能夠感知環境并通過決策和行動來實現目標的實體。Python 提供了豐富的庫和框架,可以用于構建智能體程序,例如使用 …

電商項目_性能優化_海量數據讀寫、存儲、檢索

海量數據讀寫方式選擇高并發讀寫場景分析無論任何業務系統,無非就是兩個操作:寫和讀。 在海量數據和高并發的場景下,寫和讀就會成為系統性能的瓶頸。下面分析不同業務場景下面臨的問題:側重“高并發讀”的系統場景1:搜…

RabbitMQ面試精講 Day 9:優先級隊列與惰性隊列

【RabbitMQ面試精講 Day 9】優先級隊列與惰性隊列 文章標簽 RabbitMQ,優先級隊列,惰性隊列,消息隊列,面試技巧,系統架構 文章簡述 本文是"RabbitMQ面試精講"系列第9天,深入解析優先級隊列與惰性隊列的實現原理與實戰應用。文章詳細講解優先級隊列的排…

[硬件電路-121]:模擬電路 - 信號處理電路 - 模擬電路中常見的難題

模擬電路設計是電子工程中極具挑戰性的領域,其核心難題源于信號的連續性、元件的非理想特性以及環境干擾的復雜性。以下是模擬電路中常見的難題及其技術本質與解決方案:1. 噪聲與干擾:信號的“隱形殺手”技術本質:模擬信號對微小電…

Java 大視界 -- Java 大數據在智能交通智能停車誘導與車位共享優化中的應用(381)

Java 大視界 -- Java 大數據在智能交通智能停車誘導與車位共享優化中的應用(381)引言:正文:一、智能停車的 “老大難”:不只是 “車位少” 那么簡單1.1 車主與車位的 “錯位困境”1.1.1 信息滯后的 “睜眼瞎”1.1.2 車…

基于落霞歸雁思維框架的自動化測試實踐與探索

基于落霞歸雁思維框架的自動化測試實踐與探索 在當今快速發展的軟件開發領域,自動化測試已成為提高軟件質量和開發效率的關鍵環節。本文將結合落霞歸雁的思維框架——“觀察現象 → 找規律 → 應用規律 → 實踐驗證”,探討如何將其應用于自動化測試領域&…

Unity Shader編程進階:掌握高階渲染技術 C# 實戰案例

Unity Shader編程完全入門指南:從零到實戰 C# 本文將深入探討Unity Shader編程的高級技術,包括自定義光照模型、后處理效果、GPU實例化、表面著色器深度應用等,幫助開發者提升渲染效果與性能優化能力。 提示:內容純個人編寫&#…

(論文速讀)Text-IF:基于語義文本引導的退化感知交互式圖像融合方法

論文信息論文題目:Text-IF: Leveraging Semantic Text Guidance for Degradation-Aware and Interactive Image Fusion(Text-IF:利用語義文本指導退化感知和交互式圖像融合)會議:CVPR2024摘要:圖像融合的目的是將不同源…