Python大語言模型實戰-記錄一次用ChatDev框架實現爬蟲任務的完整過程

1、模型選擇GPT4

2、需求:在win10操作系統環境下,基于python3.10解釋器,爬取豆瓣電影Top250的相關信息,包括電影詳情鏈接,圖片鏈接,影片中文名,影片外國名,評分,評價數,概況,導演,主演,年份,地區,類別這12項內容,并將爬取的信息寫入Excel表中。

(1)設計階段:

圖片

(2)編碼階段:

圖片

圖片

(3)測試階段:

圖片

圖片

(4)文檔階段:

圖片

3、結果

圖片

運行main.py報錯

圖片

4、原因分析

找下一頁鏈接時解析出現錯誤

圖片

通過檢查網頁元素,發現這個解析應該沒有問題,所以應該是更深層次的問題,發現網頁請求并沒有收到響應,應該是生成的代碼沒有添加請求頭信息。對此我在request中增加了請求頭參數

response = requests.get(url, headers=headers)

接著報錯:

圖片

查看了一下代碼

url = next_link["href"] if next_link else None

這句代碼返回的url是"?start=25&filter="顯然不是合理的下一頁的url,需要一個基礎url和解析得到的url進行拼接,我對此進行優化:

base_url = "https://movie.douban.com/top250"
url = base_url + next_link["href"] if url else None

程序可以運行,除了反爬的原因,得到如下結果

圖片

顯然,最后幾個字段信息全部在Director中,對這個信息的提取出現問題。我重新編寫解析的代碼,最終程序運行

圖片

5、總結

(1)ChatDev偏向GUI設計,它將我的需求用GUI形式展示了,運行主程序首先會彈出一個GUI。然后點擊按鈕運行整個程序。

(2)ChatDev有一個測試過程,更能夠確保程序運行不報錯,但是無法保證最終的是否返回結果,或者結果是否是用戶所需要的。

(3)程序中的一些參數設置需要人工配置,比如發出網頁請求,需要加入請求頭部信息,否則無法返回網頁信息,也就無法解析內容返回結果,而請求頭信息是需要用戶提供的。

(4)用戶提出需求之后,無法參與到軟件開發的過程中,無法參與反饋。

本人讀研期間發表5篇SCI數據挖掘相關論文,現在某研究院從事數據算法相關科研工作,對Python有一定認知和理解,會結合自身科研實踐經歷不定期分享關于python、機器學習、深度學習等基礎知識與應用案例。

致力于只做原創,以最簡單的方式理解和學習,關注我一起交流成長。

1、邀請三個朋友關注“數據雜壇”公眾號或2、分享/在看任意訂閱號的三篇文章即可在后臺聯系我獲取相關數據集和源碼。

2、關注“數據雜壇”公眾號,點擊“領資料”即可免費領取資料書籍。

3、如果對本文有疑問,或者有論文指導的相關需求,點擊“聯系我”添加作者微信直接交流。

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

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

相關文章

C語言小練

給定兩個數,求這兩個數的最大公約數 本算法主要利用輾轉相除法求出兩個數的最大公約數。 int main(){int m0;int n0;int r0;scanf("%d %d",&m,&n);while(rm%n){mn;nr;} printf("%d\n",n);return 0; } 打印斐波那契數列指定位置的值 …

工作中Git常用命令

Git config --global user.name ‘sn’設置身份名字 Git config--global user.email “ 17909098592qq.com“ 設置郵箱 Git init 創建代碼倉庫 Ls -al 查看所有目錄 Git pull <遠程倉庫名> <遠程分支名>代碼更新 Git add file.txt 添加file.txt到git提交器 …

python的requests請求參數帶files

踩坑接口請求參數含文件 requests接口請求既有file&#xff0c;也有json。劃重點params requests 官網地址 https://requests.readthedocs.io/en/stable/user/quickstart/#post-a-multipart-encoded-file 接口請求既有file&#xff0c;也有json。劃重點params import reques…

kali一鍵部署各種環境和滲透工具

相信各位初入滲透領域的小伙們接觸了kali,但是苦于要配置各種環境,安裝kali沒有的工具,費時費力,博主有時候需要重新部署kali也很苦惱,所以編寫一鍵部署安裝kali腳本,下載地址在這里:https://download.csdn.net/download/weixin_59679023/88565320 配置流程: 1、找一…

Linux加強篇002-部署Linux系統

目錄 前言 1. shell語言 2. 執行命令的必備知識 3. 常用系統工作命令 4. 系統狀態檢測命令 5. 查找定位文件命令 6. 文本文件編輯命令 7. 文件目錄管理命令 前言 悟已往之不諫&#xff0c;知來者之可追。實迷途其未遠&#xff0c;覺今是而昨非。舟遙遙以輕飏&#xff…

Debian12試用報告

環境: win11vbox 虛擬機 網絡: host-only訪問局域網 nat 訪問外網, 配置為dhcp動態獲取ip 遇到的問題: 偶爾卡死: nat每次開機都不生效, 外網無法訪問; 開機后 重啟網絡可解決 sudo /etc/init.d/networking restart host-only倒是沒問題, 內網正常訪問 vim9還是用不習…

生產實踐:Redis與Mysql的數據強一致性方案

公眾號「架構成長指南」&#xff0c;專注于生產實踐、云原生、分布式系統、大數據技術分享。 數據庫和Redis如何保存強一致性&#xff0c;這篇文章告訴你 目的 Redis和Msql來保持數據同步&#xff0c;并且強一致&#xff0c;以此來提高對應接口的響應速度&#xff0c;剛開始考…

探索移動端可能性:Capacitor5.5.1和vue2在Android studio中精細融合

介紹&#xff1a; 移動應用開發是日益復雜的任務&#xff0c;本文將帶領您深入探索如何無縫集成Capacitor5.5.1、Vue2和Android Studio&#xff0c;以加速您的開發流程Capacitor 是一個用于構建跨平臺移動應用程序的開源框架。Vue 是一個流行的 JavaScript 框架&#xff0c;用…

多線程Thread(初階三:線程的狀態及線程安全)

目錄 一、線程的狀態 二、線程安全 一、線程的狀態 1.NEW Thread&#xff1a;對象創建好了&#xff0c;但是還沒有調用 start 方法在系統中創建線程。 2.TERMINATED&#xff1a; Thread 對象仍然存在,但是系統內部的線程已經執行完畢了。 3.RUNNABLE&#xff1a; 就緒狀態&…

雪花算法原理(設計原理、優缺點、如何改造它、以及應用)

雪花算法原理&#xff08;設計原理、優缺點、如何改造它、以及應用&#xff09; 雪花算法源碼為什么雪花算法是 64 位&#xff1f;為什么時間戳是41位&#xff1f;占雪花算法的 43-47 bit 位為什么工作臺最大只支持設置 31 &#xff1f;工作臺設置成了 63 會導致什么后果&#…

JeecgBoot3.0 漏洞升級 — 快速文檔

近幾年來&#xff0c;黑客攻擊行為呈現出日益復雜和隱蔽的趨勢&#xff0c;對個人和組織的安全造成了嚴重威脅。黑客們不斷尋找新的漏洞和安全漏洞&#xff0c;利用各種手段進行網絡攻擊&#xff0c;包括惡意軟件、網絡釣魚、勒索軟件等。因此&#xff0c;我們每個人都需要關注…

Java 之 final 詳解

目錄 一. 前言 二. final 的基礎使用 2.1. 修飾類 2.2. 修飾方法 2.2.1. private 方法是隱式的 final 2.2.2. final 方法可以被重載 2.3. 修飾參數 2.4. 修飾變量 2.4.1. static final 2.4.2. blank final 2.4.3. 所有 final 修飾的字段都是編譯期常量嗎&#xff1f…

數據結構:二叉查找樹,平衡二叉樹AVLTree,紅黑樹RBTree,平衡多路查找數B-Tree,B+Tree

二叉查找樹 二叉樹具有以下性質&#xff1a;左子樹的鍵值小于根的鍵值&#xff0c;右子樹的鍵值大于根的鍵值。 對該二叉樹的節點進行查找發現深度為1的節點的查找次數為1&#xff0c;深度為2的查找次數為2&#xff0c;深度為n的節點的查找次數為n&#xff0c;因此其平均查找次…

2023年亞太數學建模C題數據分享+詳細思路

在報名截止的前一天&#xff0c;我嘗試進行了報名。到那時&#xff0c;已有11,000個隊伍注冊參賽。在我的了解中&#xff0c;在數模比賽中除了國賽美賽外&#xff0c;幾乎沒有其他競賽的參賽隊伍數量能與此相媲美。即便不考慮賽題的難度和認可度&#xff0c;亞太地區的這場競賽…

JavaScript實現動態背景顏色

JavaScript實現動態背景顏色 前言實現過程HTML實現過程CSS實現過程JS實現過程全部源碼 前言 本文主要講解JavaScript如何實現動態背景顏色&#xff0c;可以根據顏色選擇器選擇的顏色而實時更新到背景中&#xff0c;如下圖所示。 當我們在顏色選擇器中改變顏色時&#xff0c;會…

代碼掃描,漏洞檢測

1) SQL注入是一種數據庫攻擊手段。攻擊者通過向應用程序提交惡意代碼來改變原SQL語句的含義&#xff0c;進而執行任意SQL命令&#xff0c;達到入侵數據庫乃至操作系統的目的。在Mybatis Mapper Xml中&#xff0c;#變量名稱創建參數化查詢SQL語句,不會導致SQL注入。而$變量名稱…

SPSS信度分析

前言&#xff1a; 本專欄參考教材為《SPSS22.0從入門到精通》&#xff0c;由于軟件版本原因&#xff0c;部分內容有所改變&#xff0c;為適應軟件版本的變化&#xff0c;特此創作此專欄便于大家學習。本專欄使用軟件為&#xff1a;SPSS25.0 本專欄所有的數據文件請點擊此鏈接下…

內網滲透之Linux權限提升大法

文章目錄 內網滲透|Linux權限提升大法0x01 前言0x02 工具介紹1.traitor2.LinEnum3.linux-exploit-suggester.sh4.Linux Exploit Suggester 25.beroot 0X02提權手法1.環境變量提權2.利用suid提權3.定時任務提權3.1定時任務文件覆蓋提權3.2定時任務tar命令通配符注入提權 4.sudo提…

【matlab程序】matlab給風速添加圖例大小

【matlab程序】matlab給風速添加圖例大小 clear;clc;close all; % load 加載風速數據。 load(matlab.mat) % 加載顏色包信息 gray load(D:\matlab_work\函數名為colormore的顏色索引表制作\R_color_txt\R_color_single\gray89.txt); brown load(D:\matlab_work\函數名為color…