Python 網路爬蟲 Web Crawler 基本教學 By 彭彭

  Рет қаралды 377,480

彭彭的課程

彭彭的課程

5 жыл бұрын

喜歡彭彭的教學影片嗎?點擊「加入」按紐取得更多會員服務哦。
加入會員: / @cwpeng-course
建議先學習基本的網路連線程式,請參考另外一份影片:
• Python 網路連線程式、公開資料串接 B...
1. 抓取特定網址的資料
1.1 觀察想要抓取的網頁,取得網址
1.2 利用開發人員工具,觀察網路連線細節 (Request Headers)
1.3 建立 Request 物件,附加 Request Headers 設定。
2. 解析 HTML 格式資料
2.1 認識 PIP 套件管理工具
2.2 利用 PIP 安裝第三方套件 BeautifulSoup
2.3 利用 BeautifulSoup 解析並取得資料
3. 實務操作:抓取 PTT 電影版的文章標題
-------------------
更多學習資訊,請到彭彭的課程網站:
training.pada-x.com/

Пікірлер: 960
@YuTung1998
@YuTung1998 4 ай бұрын
這幾天開始上老師的課,使用的是macOS系統: 首先要跑網頁使用url,需要多下 import ssl ssl._create_default_https_context = ssl._create_unverified_context 這個指令(在先前的影片老師有回答過), 在這個堂課中發現要下載bs4時,終端機輸入pip install beautifulsoup4沒有成功,詢問chatGPT後發現可能是版本問題,在終端機輸入pip3 install beautifulsoup4就成功了! 給大家做參考~
@cwpeng-course
@cwpeng-course 3 ай бұрын
感謝指出關鍵重點
@jaymi_lai
@jaymi_lai 2 жыл бұрын
我跟著老師操作一遍之後,取得網頁資料的那一霎那有點想掉淚,好感動,竟然可以自己操作出爬蟲的結果!! 很有趣 老師真的是很會教QQ
@cwpeng-course
@cwpeng-course 2 жыл бұрын
哈哈哈,謝謝你的分享,很高興對你有幫助哦 :)
@astonchan8016
@astonchan8016 Жыл бұрын
不太符合你的形象啊
@garychen2974
@garychen2974 5 жыл бұрын
終於等到老師出新影片了 超喜歡這次的教學範例 感覺很實用 希望老師之後能多多出類似這一集的實用範例
@cwpeng-course
@cwpeng-course 5 жыл бұрын
好哦,我盡量 :)
@yuchiehwang9795
@yuchiehwang9795 5 жыл бұрын
感謝老師的影片~受益良多,喜歡這種有實作的教學影片,期待老師推出下一集~
@cwpeng-course
@cwpeng-course 5 жыл бұрын
好哦,我會持續更新,頻率就盡量嘍 :)
@ednaho5536
@ednaho5536 5 жыл бұрын
謝謝彭彭老師簡單又直接的教導, 很容易明白, 十分感謝!
@cwpeng-course
@cwpeng-course 5 жыл бұрын
謝謝你的回饋 :)
@davechang1247
@davechang1247 4 жыл бұрын
感謝老師, 這是我看過的 crawler 講的最好的影片
@cwpeng-course
@cwpeng-course 4 жыл бұрын
謝謝你的肯定和鼓勵呦 :)
@s210454
@s210454 Жыл бұрын
感謝老師,讓無基本程式概念的初學者找到一個可以慢慢上手的教學影片
@cwpeng-course
@cwpeng-course Жыл бұрын
謝謝回饋,很高興對你有幫助哦 :)
@88bb25
@88bb25 Жыл бұрын
看這門課程也快一半了,覺得內容很有趣也實用,一堂一堂聽下來覺得教學很詳細淺顯易懂,對初學PYTHON的人真的幫助很大,謝謝老師無私的教學,真的教得非常好,很感恩 ! ! !
@cwpeng-course
@cwpeng-course Жыл бұрын
謝謝你的回饋呦,很高興對你有幫助 :)))
@pchomekimo
@pchomekimo 4 жыл бұрын
老師您好阿~去年有去上您在台大開的課~每次想到你很認真的教學~內心就非常感動~謝謝你持續努力來分享您的專業~幫助這個社會~
@cwpeng-course
@cwpeng-course 4 жыл бұрын
謝謝你特別來這裡給我鼓勵 :)
@hermese4693
@hermese4693 3 жыл бұрын
老師,你的教法真的淺顯易懂,謝謝你
@cwpeng-course
@cwpeng-course 3 жыл бұрын
不會,也謝謝你的訊息 :)
@Squirrel3494
@Squirrel3494 11 ай бұрын
講解得很清楚! 第一次寫爬蟲覺得好感動!!! 謝謝你拍這部影片❤
@cwpeng-course
@cwpeng-course 10 ай бұрын
讚讚,感動的感覺很棒 ❤
@cagn154
@cagn154 2 жыл бұрын
謝謝老師手把手的細心教學,之前覺得爬蟲是很難很難的技術,一直逃避不敢嘗試,謝謝老師讓我敢邁出第一步QVQ
@cwpeng-course
@cwpeng-course 2 жыл бұрын
很高興對你有幫助哦,讚讚!
@user-sk4fo7nn4j
@user-sk4fo7nn4j 4 жыл бұрын
感謝老師,把原本覺得艱深的講得很淺顯易懂XD
@cwpeng-course
@cwpeng-course 4 жыл бұрын
謝謝你的回饋哪 :)))))
@rsmkung
@rsmkung 3 жыл бұрын
The syntax print(title.a.string) can be written as print(title.a.text)
@cwpeng-course
@cwpeng-course 3 жыл бұрын
thanks for sharing. :)
@nccurobinhood4448
@nccurobinhood4448 2 жыл бұрын
非常詳細的解說,感謝彭彭老師!
@cwpeng-course
@cwpeng-course 2 жыл бұрын
不會,謝謝你的回饋 :)
@mobilerepair2022
@mobilerepair2022 3 жыл бұрын
老师讲的好,是我目前看到的最好的
@cwpeng-course
@cwpeng-course 3 жыл бұрын
谢谢你哪 :)
@leoccc
@leoccc 3 жыл бұрын
18:22 2021更新 如果輸入 pip install beautifulsoup4 出現錯誤碼: command not found: pip 可以試試改成 pip3 install beautifulsoup4
@cwpeng-course
@cwpeng-course 3 жыл бұрын
感謝你的經驗分享 :)
@leoccc
@leoccc 3 жыл бұрын
@@cwpeng-course 我才要謝謝你,很好的影片
@user-hd2fm5dw6m
@user-hd2fm5dw6m 3 жыл бұрын
@@leoccc 您好,但我的都會顯示invalid syntax在install上,不知道是哪裡出了問題,謝謝您
@a0919348897
@a0919348897 3 жыл бұрын
有同樣的困擾~
@user-uu9dk8dd9p
@user-uu9dk8dd9p 3 жыл бұрын
@@user-hd2fm5dw6m google就有解了
@cliffbear9610
@cliffbear9610 5 жыл бұрын
好有趣~
@cwpeng-course
@cwpeng-course Жыл бұрын
:)
@jaxon0523
@jaxon0523 4 жыл бұрын
解說得很詳細,感謝分享此影片,受益良多!!!
@cwpeng-course
@cwpeng-course 4 жыл бұрын
謝謝,很高興對你有幫助 :)
@coslychac1777
@coslychac1777 3 жыл бұрын
感謝老師,看過思路最清晰的教學~
@cwpeng-course
@cwpeng-course 3 жыл бұрын
謝謝你 :)
@cture77651
@cture77651 5 жыл бұрын
超強老師打字超快的
@cwpeng-course
@cwpeng-course 5 жыл бұрын
XDDDDDDD
@user-ww2qx4qo9e
@user-ww2qx4qo9e 4 жыл бұрын
@@cwpeng-course 老師是不是玩遊戲常常跟人吵架XD (喂
@user-jt3hg3kd7r
@user-jt3hg3kd7r 5 жыл бұрын
因為好奇修改了一下, 不小心把整個PTT電影版七千多頁的標題全部抓下來了, 實測有15萬筆資料喔~
@cwpeng-course
@cwpeng-course 5 жыл бұрын
哦哦哦!很不錯哦 XDDDDD 抓了這麼多資料可以來分析一下了!!!
@Zoie-Tseng
@Zoie-Tseng 5 жыл бұрын
怎麼用QAQ 我也想知道~~
@koalapi3266
@koalapi3266 4 жыл бұрын
想知道+1
@koalapi3266
@koalapi3266 4 жыл бұрын
迴圈控制頁數嗎?我只想到這樣
@t29347790
@t29347790 4 жыл бұрын
我的天啊 我也學會了 我好興奮阿
@nicksun9607
@nicksun9607 2 жыл бұрын
真的很詳細,非常謝謝老師
@cwpeng-course
@cwpeng-course 2 жыл бұрын
不會,加油嘍 ~
@denzelh2283
@denzelh2283 2 жыл бұрын
實在有夠複雜,多謝老師指引 準備加入會員~
@cwpeng-course
@cwpeng-course 2 жыл бұрын
不客氣哦,歡迎 :)
@seasky123456789
@seasky123456789 5 жыл бұрын
超菜鳥總算能回饋一下關於Mac安裝BeautufulSoup的過程: 要安裝bs4要先安裝pip才能像老師那樣直接打指令就安裝bs4(應該吧XD) 像我直接打"sudo easy_install pip"或是"pip install beautifulsoup4"等指令 最後一行都會跳出: "error: Could not find suitable distribution for Requirement.parse('pip')" 在網路上亂搜了幾個小時後才發現 "嗯,應該是pip的問題" 於是乎就搜了"mac pip error",然後就找到了面這個指令: curl bootstrap.pypa.io/get-pip.py -o get-pip.py sudo python get-pip.py 終端機輸入上面兩行後再重新安裝pip "sudo easy_install pip" 然後在 "pip install beautifulsoup4" 接著再 "pip3 install beautifulsoup4" 就可以了(吧? -------------------------------------------------------------- 想請問一下老師: 對於一個完全沒有程式背景,看不懂終端,每次在程式有誤的時候都得花好幾個小時才能把bug全部消掉是正常的情況嗎?該怎麼克服這個問題?謝謝老師
@cwpeng-course
@cwpeng-course 5 жыл бұрын
非常感謝你幫忙說明在 Mac 上的狀況,相信對很多人都很有幫助 :) 看不懂錯誤訊息是比較可惜的,如果能在英文上加強一些,錯誤訊息通常會很有幫助。不過,初期花很多時間 debug 其實很正常,倒也不用特別放心上 ~
@user-vb1ux3mz8p
@user-vb1ux3mz8p 5 жыл бұрын
請問一下你也是使用vs code嗎?
@user-bh5qg5rz8j
@user-bh5qg5rz8j 5 жыл бұрын
Mac使用者感謝大大的回饋
@jasonlin8295
@jasonlin8295 4 жыл бұрын
謝謝 你幫助到我了 感恩
@user-jp9ls2wj1c
@user-jp9ls2wj1c 5 жыл бұрын
麥克風很棒,其他頻道的講解都會有雜音
@cwpeng-course
@cwpeng-course 5 жыл бұрын
歸功我的麥克風 XDDDD
@joshuachan6317
@joshuachan6317 4 жыл бұрын
@@cwpeng-course 真的哦,我點進去其他的教學,他們的麥克風雜音太多了啦,我就直接走了
@kuo-hunglo8379
@kuo-hunglo8379 Жыл бұрын
講的真好。看過講的最好的,沒有之一。
@cwpeng-course
@cwpeng-course Жыл бұрын
謝謝哪,希望對你有幫助 :)
@changstanly1095
@changstanly1095 4 жыл бұрын
搞懂了 也成功把東西寫到別的路徑下,感謝老師!!
@edison9514
@edison9514 4 жыл бұрын
Chang Stanly 不好意思請問可以分享寫到別的路徑的程式碼嗎,因為我寫的都只會寫入最後一筆 謝謝
@changstanly1095
@changstanly1095 4 жыл бұрын
@@edison9514 您好,with opne("指定路徑\data.txt", "w", encoding="utf8") 就可以寫到您所指定的路徑,並不複雜,我也是爬了一些文才找到。w所指的應該是單次寫入,下次寫入時會覆蓋原有的資料。如果要寫入所有的資料要改用"a"就可以了。如果程式沒問題應該可以成功。
@edison9514
@edison9514 4 жыл бұрын
@@changstanly1095 WOW原來如此 太感謝你了
@cwpeng-course
@cwpeng-course 4 жыл бұрын
不會,很高興大家都能在這裡有收穫 :)
@user-nl4ry3wb1x
@user-nl4ry3wb1x Жыл бұрын
跟 各位分享我的練習 過程發生的 障礙 我本來想說 不要跟老師 用完全一樣的網站 所以我用 ptt 的表特版 練習 結果到 22:00 titles = root.find("div" , class_="title") 結果顯示出來的結果 沒有出錯,但是 一直顯示None 一直抓不到 標題 後來我才發現 因為 進去 表特版的時候 他會先 進入一個問你 是否已滿18歲的 頁面 所以 才會抓不到 標題 分享給各位
@snowborder8292
@snowborder8292 Жыл бұрын
我也遇到一樣的問題,困擾許久,謝謝解惑!
@han-fk9gh
@han-fk9gh 11 ай бұрын
我也是用別的板結果抓不到資料.... 好險看到你的分享~~感謝
@cwpeng-course
@cwpeng-course 11 ай бұрын
感謝你的分享 :)
@user-hp1hf7ly1d
@user-hp1hf7ly1d 11 ай бұрын
老師你好,在影片中有提到 class 是內建關鍵字,因此使用 class_ ,照文字邏輯來說,有底線的 class 跟一般 class 應該是兩種不同的條件,為什麼這樣的篩選條件可以成功呢? 謝謝
@cwpeng-course
@cwpeng-course 8 ай бұрын
參數名稱是可以任意指定的,內部邏輯才是重點 ( 內部邏輯就是套件的開發者寫的 ~
@user-js5jj5fd6e
@user-js5jj5fd6e 2 жыл бұрын
淺顯易懂的教學,非常實用~~~
@cwpeng-course
@cwpeng-course 2 жыл бұрын
感謝你的回饋 ~~~
@Tedliu1992
@Tedliu1992 Жыл бұрын
感謝老師 目前已經跟到 web Crawler
@cwpeng-course
@cwpeng-course Жыл бұрын
加油加油 :)
@hsiangchen4534
@hsiangchen4534 5 жыл бұрын
這鍵盤聲,ASMR嗎? 超舒服XDD
@cwpeng-course
@cwpeng-course 5 жыл бұрын
哈哈哈哈 XDDDDD
@tonnyqoo
@tonnyqoo 5 жыл бұрын
想請問老師 在HTML 中 不是只有 嗎? 為何 22:44 中 class 後面為何要加 "_" 底線啊? (class_="title")
@PPERSON5988
@PPERSON5988 5 жыл бұрын
同问老师。不加会报错,但是为什么是加_呢?
@cwpeng-course
@cwpeng-course 5 жыл бұрын
單純只是 class 是 python 的保留字,程式中不能使用。 所以 BeautifulSoup 就選擇使用 class_ 來篩選標籤中的 class 屬性。
@PPERSON5988
@PPERSON5988 5 жыл бұрын
@@cwpeng-course 收到。谢谢老师。
@tonnyqoo
@tonnyqoo 5 жыл бұрын
謝謝老師!
@wasilinba
@wasilinba 5 жыл бұрын
@@cwpeng-course 原來是這樣,感謝解說
@user-su4xq6py9g
@user-su4xq6py9g 5 жыл бұрын
謝謝老師的影片 在影片中學到很多知識!!!
@cwpeng-course
@cwpeng-course 5 жыл бұрын
太好了!!!
@user-en5nk4uy8r
@user-en5nk4uy8r 3 жыл бұрын
沒摸過程式跳著看滿吃力 我把你的影片從頭開始看好了
@cwpeng-course
@cwpeng-course 3 жыл бұрын
沒摸過程式的話確實要重頭看比較適合嘍 :)
@sunnychang7750
@sunnychang7750 3 жыл бұрын
老師你好 我想找標題的時候在標籤div 後的篩選條件 class_=“title” 為什麼一定要加_呢?那除了_這個以外還可以加其他的嗎?謝謝老師。
@ryanlin6205
@ryanlin6205 3 жыл бұрын
「class」是python的保留字,所以用find方法在爬資料時,必須把class後面加一個_,才不會和python的保留字衝突
@sunnychang7750
@sunnychang7750 3 жыл бұрын
@@ryanlin6205 原來如此,謝謝你
@cwpeng-course
@cwpeng-course 3 жыл бұрын
感謝 @Ryan Lin 的說明,很清楚 :)
@fffffffff543
@fffffffff543 2 жыл бұрын
@@cwpeng-course 原來如此,我也有同樣的問題!感謝老師的解答,所以本來應該是要打class="title",但是因為保留字衝突所以要打成class_="title"這樣,這樣python分辨得出來喔? 真神奇
@tony93058
@tony93058 2 жыл бұрын
老師您好想請問為何轉碼有時候用 decode 有時候用encode?
@cwpeng-course
@cwpeng-course 2 жыл бұрын
encode 是把文字轉碼成位元組,decode 是把位元組解碼成文字。兩個是相對的操作,根據實際狀況決定要做哪一個方向,大概是這樣 ~
@jenshintu6372
@jenshintu6372 5 жыл бұрын
謝謝老師,受益良多!
@cwpeng-course
@cwpeng-course 5 жыл бұрын
很高興對你有幫助 :)
@yangdemi928
@yangdemi928 4 жыл бұрын
講得超好的 謝謝老師
@cwpeng-course
@cwpeng-course 4 жыл бұрын
不客氣呦 :)
@darkbreker2271
@darkbreker2271 3 жыл бұрын
想請問老師,如果我想抓取不只一頁的資料,該怎麼做呢?
@cwpeng-course
@cwpeng-course 3 жыл бұрын
抓取到第一頁的資料之後,從中找到第二頁的網址,接著再去抓第二頁的資料。把這樣的程序寫成完整的程式碼,其實是很好的練習 :)
@Beabetterone
@Beabetterone 3 жыл бұрын
mac 如果要升級pip 可以在終端機打上 pip3 install --upgrade pip
@cwpeng-course
@cwpeng-course 3 жыл бұрын
感謝你的分享哦 :)
@user-rq1si4zy7t
@user-rq1si4zy7t 5 жыл бұрын
期待下一集,感谢。
@cwpeng-course
@cwpeng-course 5 жыл бұрын
好哦 ~
@lin571898youtub
@lin571898youtub 4 жыл бұрын
感謝教學,收益良多
@cwpeng-course
@cwpeng-course 4 жыл бұрын
不會,謝謝你的回饋 :)
@davidlin2040
@davidlin2040 5 жыл бұрын
非常感謝老師的影片~ 讓我從0基礎開始看到現在 都很淺顯易懂喔。 目前在安裝 beautifulsoup4 後出現以下問題: 下 "pip install beautifulsoup4 " 指令後 說已經安裝,最後出現: "You are using pip version 19.0.3, however version 19.2.2 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command. " 我再下 "-m pip install --upgrade pip" 或 "m pip install --upgrade pip" 的指令後都出現錯誤... 不安裝到最新版好像也不行,該如何安裝到最新的版本呢? 先謝謝老師了!
@davidlin2040
@davidlin2040 5 жыл бұрын
我打 "python -m pip install --upgrade pip" 可以了
@cwpeng-course
@cwpeng-course 5 жыл бұрын
恭喜你解決問題 :)
@nickyang20
@nickyang20 3 жыл бұрын
感謝
@t5v716
@t5v716 2 жыл бұрын
那請問老師import bs4如果升級以後bs4要打成甚麼? 因為我打bs4出現error
@kendo316
@kendo316 2 жыл бұрын
@@davidlin2040 感謝分享。
@nikolaisu7437
@nikolaisu7437 3 жыл бұрын
老師: 目前PTT仍然可以用這樣的方式爬嗎? 因為再加入User-Agent資料後,仍然顯示urllib.error.HTTPError: HTTP Error 403: Forbidden 但嘗試其他網頁,可以正常使用
@cwpeng-course
@cwpeng-course 3 жыл бұрын
應該是可以的哦,要再確認看看你的程式碼 ~
@jeffpan1581
@jeffpan1581 3 жыл бұрын
老師您好,我也碰上同樣的問題 我爬其他網頁沒問題,但ptt的電影版仍然顯示urllib.error.HTTPError: HTTP Error 403: Forbidden
@user-co1yj4xp2d
@user-co1yj4xp2d 4 жыл бұрын
谢谢老师的教程
@cwpeng-course
@cwpeng-course 4 жыл бұрын
不会呦 :)
@lchen2464
@lchen2464 4 жыл бұрын
讲的非常棒
@cwpeng-course
@cwpeng-course 4 жыл бұрын
謝謝 :)
@yuantingchou8229
@yuantingchou8229 3 жыл бұрын
請問老師問為甚麼我下載完beautifulsoup4, 然後打bs4的時候都無法被辨認
@cwpeng-course
@cwpeng-course 3 жыл бұрын
如果確定有安裝成功,可能你的電腦中有安裝其他的 Python 虛擬環境,例如 Anaconda 之類的,會產生一些環境管理的問題,如果不懂如何管理,可以移除其他 Python 相關的工具再回來試試看
@kkkopo9612
@kkkopo9612 3 жыл бұрын
@@user-ix4xi9sc6h 我也有出現這個問題欸 它上面寫bs4 could not be resolved from source
@benson6569
@benson6569 4 жыл бұрын
我照著打出現這 Traceback (most recent call last): File "test.py", line 14, in root=bs4.beautifulsoup(data,"html.parser") AttributeError: module 'bs4' has no attribute 'beautifulsoup'
@iamnate791031
@iamnate791031 4 жыл бұрын
你“BeautifulSoup”的B跟S沒大寫
@cwpeng-course
@cwpeng-course 4 жыл бұрын
感謝 @7788250 的回應,是這樣沒錯哦 :)
@robertlee5734
@robertlee5734 3 жыл бұрын
@@iamnate791031 哈哈哈哈為了這個大寫花了我快半小時XDDD
@t29347790
@t29347790 4 жыл бұрын
感謝老師
@cwpeng-course
@cwpeng-course 4 жыл бұрын
:)
@bigeye6525
@bigeye6525 Жыл бұрын
碰碰老师讲的很好
@cwpeng-course
@cwpeng-course Жыл бұрын
Nice 碰碰 XDDD
@user-ip6ey6wj6m
@user-ip6ey6wj6m 4 жыл бұрын
最後是重點!!27:56
@cwpeng-course
@cwpeng-course 4 жыл бұрын
XDDDDDDD
@stte8302
@stte8302 4 жыл бұрын
谢谢 教程很好
@cwpeng-course
@cwpeng-course 4 жыл бұрын
:)
@nickmatchn1
@nickmatchn1 2 жыл бұрын
我也成功了,感謝教學
@cwpeng-course
@cwpeng-course 2 жыл бұрын
讚讚,恭喜成功!
@user-tf2sy9ol4y
@user-tf2sy9ol4y 3 жыл бұрын
深入浅出 大赞!!
@cwpeng-course
@cwpeng-course 3 жыл бұрын
谢谢哪 :))))
@user-yp9qz1bc1s
@user-yp9qz1bc1s 4 жыл бұрын
難得的好教學!
@cwpeng-course
@cwpeng-course 4 жыл бұрын
謝謝 :)
@user-sq3xe2yv5n
@user-sq3xe2yv5n 2 жыл бұрын
謝謝老師精彩的教學!! 小女想敲碗一下讀取網頁驗證碼並且輸入正確的教學影片XD 每次爬蟲都遇到要輸入驗證碼的窘境QQ
@cwpeng-course
@cwpeng-course 2 жыл бұрын
其實沒有統一的解決方法,每一種驗證碼背後的運作方式不一定相同。不過謝謝你的建議,我會考慮未來加有驗證碼的例子 :)
@tonychen8713
@tonychen8713 5 жыл бұрын
感谢
@cwpeng-course
@cwpeng-course 5 жыл бұрын
不客气 :)
@yang6115
@yang6115 5 жыл бұрын
老師您好,請問一下最後用beautifulsoup 解析完後,裝進root內。後續用root.find_all時,其中的find_all(程式第14行)是beautifulsoup裡面內建的功能嗎?還是單純python內建的函式? 並謝謝老師
@cwpeng-course
@cwpeng-course 5 жыл бұрын
find_all 是 beautifulsoup 提供的功能哦。
@sheng9288
@sheng9288 4 жыл бұрын
飲水思源,謝謝老師!
@cwpeng-course
@cwpeng-course 4 жыл бұрын
不客氣呦!
@zhangsannedkelly2439
@zhangsannedkelly2439 Жыл бұрын
终于看到爬虫了😊
@cwpeng-course
@cwpeng-course Жыл бұрын
加油 :)
@YenHuaLai
@YenHuaLai Жыл бұрын
Last group was mad funny, my favourite one in all of these videos
@cwpeng-course
@cwpeng-course Жыл бұрын
good. :)
@user-lx6lq7xb7c
@user-lx6lq7xb7c Жыл бұрын
8:58 準備執行code 會出現error 17:48 beautifulsoup 25:15 find all 25:52 印出來的是list 列表
@cwpeng-course
@cwpeng-course Жыл бұрын
感謝分享 :)
@a0958964747
@a0958964747 4 жыл бұрын
老師想請問一下 我想要把print出的結寫在json 檔或是在txt檔 他跑出 TypeError: write() argument must be str, not Tag 請問是出了什麼問題
@cwpeng-course
@cwpeng-course 4 жыл бұрын
錯誤訊息是指 write() 的參數必須放字串型態的資料。但卻放了一個 Tag 型態的資料進去。
@user-kg7hb3jg6w
@user-kg7hb3jg6w 3 жыл бұрын
老師 是心理系阿! 好巧阿 我也是
@cwpeng-course
@cwpeng-course 3 жыл бұрын
哈哈哈,對呀,你好你好 :))))
@user-zo3zi1kp3g
@user-zo3zi1kp3g 2 жыл бұрын
想問老師,後面有一段是找所有電影標題的部分,為什麼titles=root.find_all( div,class_="title") 加上_all後 print(title.a.string)打不出來,只能打print(title),然後加完for迴圈後,又有print(title.a.string),謝謝老師
@cwpeng-course
@cwpeng-course 2 жыл бұрын
使用 find_all 會取得一個列表放在 titles 中,搭配 for 迴圈去取得列表中的每一個項目,然後才能取得每個項目底下的資訊。
@user-zf4fk4zl6q
@user-zf4fk4zl6q 3 жыл бұрын
老師 想請問為甚麼安裝pip後會顯示這個訊息 該怎麼做 raceback (most recent call last): File "D:\python-tranning\crawler.py", line 13, in root=bs4.BeautifulSoup4(data,"html.parser") #讓beautifulsoup解析HTML格式 AttributeError: module 'bs4' has no attribute 'BeautifulSoup4'
@cwpeng-course
@cwpeng-course 3 жыл бұрын
程式碼是 bs4.BeautifulSoup,沒有後面的 4
@franceken5864
@franceken5864 5 жыл бұрын
彭彭老師~你好~很高興能夠從你的教學片學到很多,想跟你請教一下,可否再拍一部用python 使用gmail寄信包含夾帶附檔,附圖片的影片。 感恩你
@cwpeng-course
@cwpeng-course 5 жыл бұрын
感謝你的回饋,有收到了,我會加入考慮之中 :)
@yu-tinglin9006
@yu-tinglin9006 3 жыл бұрын
import bs4 root=bs4.BeautifulSoup(data,'html.parser') #抓取網頁標題 print(root.title.string) #抓取文章標題 titles=root.find('div',class_='title') print(titles.a.string) 想請問老師為何抓取文章標題時要使用find,抓取網頁標題時就不用?? 謝謝老師
@cwpeng-course
@cwpeng-course 3 жыл бұрын
因為一個網頁只會有一個標題,所以可以直接取得。但網頁的內容是多變的,所以程式開發的概念是是根據抓到的資料去【搜尋】也就是 find 你想要找的部份。
@GNSSA6213
@GNSSA6213 3 жыл бұрын
彭彭老師您好: 程式碼最後 with open("data1.txt",mode="w",encoding="utf-8")as file: file.write(title.a.string) 想請問老師,為什麼這個只存到第一行文字,其他沒有存到
@cwpeng-course
@cwpeng-course 3 жыл бұрын
title.a.string 代表網頁標題,所以就只是把網頁標題寫入檔案裡面而已 ~
@SweLing0
@SweLing0 4 жыл бұрын
老師你好 我第一次使用的時候都沒問題 最近再開的時候發現import bs4出現"Uable to import 'bs4' pylint(import-error) 換了"from bs4 import BeautifulSoup" 也是一樣的結果 上網查了之後很多人遇到 但照著做還是無法解決 不知道老師有沒有什麼方法 (OS: windows)
@cwpeng-course
@cwpeng-course 4 жыл бұрын
程式能執行就沒問題,pylint 的報錯可以忽略沒關係。 pylint 只是一個程式檢查的擴充套件,不一定是正確的。
@user-dd3db2qz7e
@user-dd3db2qz7e 3 жыл бұрын
謝謝!
@cwpeng-course
@cwpeng-course 2 жыл бұрын
不客氣哦 ~
@user-dd3db2qz7e
@user-dd3db2qz7e 2 жыл бұрын
@@cwpeng-course 老師您好,想請問一下為何加入會員還無法觀看會員影片?謝謝
@cwpeng-course
@cwpeng-course 2 жыл бұрын
@@user-dd3db2qz7e 你加入的是每月 30 元的贊助會員,可以再仔細看看會員服務的內容,專屬的影片要加入每月 100 元的會員才能看哦 ~
@jaychen5271
@jaychen5271 5 жыл бұрын
終於啊
@cwpeng-course
@cwpeng-course 5 жыл бұрын
哈哈,是阿 XDDD
@wintecaakai228
@wintecaakai228 3 жыл бұрын
謝謝老師的影片 也因此開始coding 有一個問題想請問老師: 自己想要印出td class下的href, 理想中要出現“href="C.php?bsn=60404&snA=3890&tnum=1” 但用了print(lastpage["href"]) 出現TypeError: list indices must be integers or slices, not str 請問老師哪裡不對了 *********** Code1: lastpage = root.find_all("td", class_="b-list__main") print(lastpage) Output1: [ 置頂 【巴哈】輕鬆不放縱,哈啦園地有賴你我共同維繫 , 【情報】10月8號開發日誌 *********** *********** Code2: lastpage = root.find_all("td", class_="b-list__main") print(lastpage["href"]) Output2: TypeError: list indices must be integers or slices, not str ***********
@cwpeng-course
@cwpeng-course 3 жыл бұрын
lastpage 是一個列表 (List),所以不能直接取屬性。需要先寫一個迴圈,把列表中的每個 td 都抓出來,然後再抓底下的 a,之後才能取得屬性。
@jiali4123
@jiali4123 3 жыл бұрын
老师讲的真好。非常感谢。顺便问一下,为什么用这个程序抓取不了综合版的title呢?
@cwpeng-course
@cwpeng-course 3 жыл бұрын
你可以看下一部影片哦,可能有 Cookies 的部分要处理
@coolman35
@coolman35 3 жыл бұрын
請問老師 , 如果想輸出 txt file 怎樣換行? with open(“data_web.txt”, mode=“W”, encoding=“utf-8”) as file: data=file.write(title.a.string)
@cwpeng-course
@cwpeng-course 3 жыл бұрын
可以寫 file.write(" ") 這樣哦 ~
@matt4409
@matt4409 4 жыл бұрын
彭彭老師 請問class_="title" 這邊的底線是固定的用法嗎 如過要找type_="text/css"也是這樣用嗎
@cwpeng-course
@cwpeng-course 4 жыл бұрын
不是,只有要找 class 的時候會寫 class_ 哦 ~~~
@chgwyellow
@chgwyellow 4 жыл бұрын
想請問彭彭老師: 如果遇到以下這種情況該如何處裡呢? UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa4 in position 280: invalid start byte
@cwpeng-course
@cwpeng-course 4 жыл бұрын
可能是 Python 版本的問題,確認有安裝 Python 3 的版本。如果是 Mac 電腦執行時使用:python3 檔案名稱
@danp.2329
@danp.2329 3 жыл бұрын
彭彭老師你好 我想請問 在影片中class 後面為何要加上一個底線 與 !=None 的意思是?!
@cwpeng-course
@cwpeng-course 3 жыл бұрын
那只是 BeautifulSoup 的規矩,因為 class 是保留字不能用,所以他就使用 _class。 這個符號 != 是不等於的意思。
@12345635303
@12345635303 2 жыл бұрын
@cwpeng-course
@cwpeng-course 2 жыл бұрын
:)
@user-jr4vl7uv8f
@user-jr4vl7uv8f 2 жыл бұрын
老師您好 ,我想請問一下,如果我用titles=root.find("div",class_="title") ,print(titles.a.string)程式跑得出來 但我用titles=root.find_all("div",class_="title")後 print(titles.a.string)就跑不出來了,但是print(titles)還是可以跑出來,是為甚麼呢
@cwpeng-course
@cwpeng-course 2 жыл бұрын
find 會回傳一個標籤物件,所以你可以直接操作。find_all 會回傳一個列表,所以你得用迴圈去取得列表中的物件,才能做操作。
@chienhungkuo6606
@chienhungkuo6606 3 жыл бұрын
彭彭老師好 想問您如果在讀取html時遇上UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa5 in position 1369 該怎麼辦呀 試了decode("utf-8",errors='ignore'),但無法解決,抓出來的中文都變成英文亂碼
@cwpeng-course
@cwpeng-course 3 жыл бұрын
是和我抓取同一個網站嗎?或許你抓取的網站並不是用 utf-8 編碼?
@user-di5ig9ff3y
@user-di5ig9ff3y 3 жыл бұрын
想要請問,因為ptt會擋的關係,所以若是在網路連線那部影片中示範,也會遇到連不上,要改header的問題對嗎?差別是不是在於老師在網路連線影片中是找公開資訊,所以不會被擋?
@cwpeng-course
@cwpeng-course 3 жыл бұрын
對哦,公開資料通常就是要讓你連線用,爬取網站通常就要比較費力一點 ~
@mister33221
@mister33221 4 жыл бұрын
老師您好 如果想要爬的網頁 在request header的部分顯示如下,而無法抓取user-agent怎麼辦呢 Provisional headers are shown Upgrade-Insecure-Requests: 1
@cwpeng-course
@cwpeng-course 4 жыл бұрын
可以找任何其他網頁的資訊,user-agent 都是一樣的哦 ~
@user-yx2gg2df4o
@user-yx2gg2df4o 4 жыл бұрын
請問老師 titles=root.find_all("div", class_="title")中,為甚麼class後面要多加一個底線啊? 謝謝
@cwpeng-course
@cwpeng-course 4 жыл бұрын
規矩而已 ~ 因為 Python 中不能使用 class 當名稱 ~
@kesri1013
@kesri1013 3 жыл бұрын
想請教老師或有看到留言的大大 第13行找div標籤的那邊 如果我想找兩個以上但不是div開頭標籤的話要怎麼寫 我試了寫2個for迴圈是寫得出來 不過資料跑出來會是兩份分開的還要一個個去對 感謝~~~
@cwpeng-course
@cwpeng-course 3 жыл бұрын
寫兩個迴圈是蠻正常的處理方式,比對資料也是很常見的操作,所以你有解決其實很棒哦 :)
@user-um1ww6uy9v
@user-um1ww6uy9v 5 ай бұрын
想問一下若剛好找到ppt那頁沒有刪除的文章(也就是每篇文章皆有標題),那最後的for迴圈方式還會跟老師您打得一樣嗎,因為最後都跑不出全文字
@user-EricLin0619
@user-EricLin0619 4 жыл бұрын
老師您好,請問 root=bs4.Beautifulsoup(data,"html.parser") 裡面的root算是一個物件嗎?
@cwpeng-course
@cwpeng-course 3 жыл бұрын
是的 ~
@ye4011
@ye4011 6 ай бұрын
如果有遇到ModuleNotFoundError:No module named ‘bs4’且載過不同版本的python的人 可以到底部那條藍色的點選python版本(ex 3.11.0),此時上方(Select interpreter)會出現其他python版本,切換完再重新執行就可以了 By 卡在這裡很久終於解決的人QAQ
@ianlee7673
@ianlee7673 2 жыл бұрын
請問老師,我打了 import bs4 root=bs4.BeautifulSoup(data,"html parser") print(root.title) 但terminal出現這個錯誤 bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: html parser. Do you need to install a parser library?
@cwpeng-course
@cwpeng-course 2 жыл бұрын
是 "html.parser" 哦,少了一個點
@user-sq3sj4tz7l
@user-sq3sj4tz7l 2 жыл бұрын
老師您好~我再找文章標題時我跟您一樣打了 import bs4 root=bs4.BeautifulSoup(data, "html.parser") print(root.title) 是有正確找到標題,但是在print出來的結果標題上面還是有很大一串的原始碼,想請教一下是哪裡出問題了。
@cwpeng-course
@cwpeng-course 2 жыл бұрын
可能上面印出所有原始碼的程式沒有移掉?
@user-du8ep5wt1j
@user-du8ep5wt1j Жыл бұрын
想請問老師,python 版本都會持續更新,語法也會更新,那我們身為學習者是也要跟進最新的語法嗎?好奇如果都是使用舊的版本會怎樣嗎?謝謝🙏~看老師教學影片真的很有幫助
@cwpeng-course
@cwpeng-course Жыл бұрын
目前都還是第三版,如果大版本一樣,其實就沒有什麼非常核心的差異,基礎的語法基本都不會有變化,所以沒那麼嚴重,實際要應用時發現有版本問題再去升級即可。 很高興對你有幫助哪 :)
@masonhong2056
@masonhong2056 4 жыл бұрын
老師 我想請教一下 出現一下訊息該怎樣處理: Suggestion [3,General]: The command crawler.py was not found, but does exist in the current location. Windows PowerShell does not load com found, but does exist in the current location. Windows t this command, instead type: ".\crawler.py". See "get-help about_Command_Precedenc PowerShell does not load commands from the current location by default. If you trust this command, instead type: ".\crawler.py". See "get-help about_Command_Precedence" for more details.
@cwpeng-course
@cwpeng-course 3 жыл бұрын
應該是指令打錯了,前面要加一個 python 哦 ~
@dklam2787
@dklam2787 4 жыл бұрын
老師 我想問一下 這和之前的網絡連結 為什麼那個不用模仿使用者 這個要模仿使用者加入user agent
@cwpeng-course
@cwpeng-course 4 жыл бұрын
我們如果抓取的網址,本身沒有阻擋爬蟲,就不一定要加入 user agent。 但有些實際的網站,就不太喜歡爬蟲,對方可能會做一些偵測和阻擋的動作,我們就會加入 user agent。
@Freda_L
@Freda_L 4 жыл бұрын
Traceback (most recent call last): File "d:/python-training/19.py", line 13, in import bs4 ModuleNotFoundError: No module named 'bs4' 老師請問一下,這樣是因為我的路徑錯了嗎 我該怎麼做呢
@cwpeng-course
@cwpeng-course 4 жыл бұрын
可能沒有成功使用 pip 先安裝好 BeautifulSoup4 套件 ~
@user-bd4ef4br3n
@user-bd4ef4br3n 5 жыл бұрын
另外在老師放上新教學影片前如果還想再學習爬蟲相關的部分是該先去學BeautifulSoup的檔案還是要學html的知識?
@cwpeng-course
@cwpeng-course 5 жыл бұрын
可以多了解 html 的組成,然後再研究 BeautifulSoup 還提供哪些我在影片中沒有提到的分析函式。
@user-bd4ef4br3n
@user-bd4ef4br3n 5 жыл бұрын
@@cwpeng-course 了解,我再回去先在看一次老師的html基本教學影片,然後再找看看有沒有入門的Beautiful Soup教學
@GHLee-vr5ft
@GHLee-vr5ft 4 жыл бұрын
老师 我是你的忠实的粉丝,我是编程初学者在学习python3,使用mac,subilme text 编辑器来看着你的影片来学习的,您用的编辑器是什么?
@cwpeng-course
@cwpeng-course 4 жыл бұрын
谢谢你的支持 :) 我这边是用 Visual Studio Code 哦 ~
@allen7937
@allen7937 6 ай бұрын
老師請問這邊要透過附加Request header才能存取網頁資料,而非前一支影片那樣可以直接存取台北市政府的資料,是因為不是開放平台資料的緣故嗎?
@cwpeng-course
@cwpeng-course 6 ай бұрын
一般網站都必須要刻意的去模仿瀏覽器才能抓取,有公開的 API 就是對方本來就願意讓我們抓取,所以比較少議題 ~
@user-pf2pt8rp5v
@user-pf2pt8rp5v 3 жыл бұрын
請問有什麼方法可以讓標題遞減輸出 for title in range(len(titles),0,-1) #試過了沒有辦法 因為想看到 最後幾個為網頁前面幾個標題!
@cwpeng-course
@cwpeng-course 3 жыл бұрын
沒有完全理解你的意思,我猜是類似下面這樣的邏輯: for index in range(len(titles), 0, -1): title=titles[index]
Python 網路爬蟲 Web Crawler 教學 - Cookie 操作實務 By 彭彭
37:15
Playing hide and seek with my dog 🐶
00:25
Zach King
Рет қаралды 34 МЛН
Получилось у Миланы?😂
00:13
ХАБИБ
Рет қаралды 4 МЛН
Опасность фирменной зарядки Apple
00:57
SuperCrastan
Рет қаралды 11 МЛН
A clash of kindness and indifference #shorts
00:17
Fabiosa Best Lifehacks
Рет қаралды 134 МЛН
Python 全民瘋AI系列 [Day 25] 使用Python Flask架設API吧!
29:53
Python Selenium 網頁爬蟲基礎 By 彭彭
41:09
彭彭的課程
Рет қаралды 49 М.
文組也看得懂的 - 網路爬蟲
4:25
學仁大大
Рет қаралды 141 М.
Python 網路連線程式、公開資料串接 By 彭彭
21:24
彭彭的課程
Рет қаралды 170 М.
Docker zero-based entry practice
23:04
科技lion
Рет қаралды 9 М.
Coding Web Crawler in Python with Scrapy
34:31
NeuralNine
Рет қаралды 107 М.
Playing hide and seek with my dog 🐶
00:25
Zach King
Рет қаралды 34 МЛН