作者yeeche (yeech)
看板Python
標題[問題] 新手學python想抓網頁資料
時間Thu Jul 25 23:01:44 2019
各位前輩好
小弟是python新手 程度應該很low
想請教一下用python抓網頁的功能
http://ww2.money-link.com.tw/etf/Ranking2.html 我想抓取這個網頁的資訊
目前有看網路自學基本的python 包含list dictionary等
我是看py4e 也是coursera裡面那個Michigan python教學
也看網路學會panda還有簡單的 beautiful soup
抓一些比較簡單的網站資料
可是這個網站的資訊 好像是屬於動態資料
原始網頁資料並沒有這些數據
上網看了一下 找到類似的教學也是 : beautiful soup
https://www.youtube.com/watch?v=FSH77vnOGqU&t=726s 但是可能對我來說有點太跳級了 實在很難懂
查了版上的資訊 好像還有selenium scrapy等等
想請教一下各位高手 以如果要抓這種網頁
到底需要懂哪些工具比較好呢?
有哪些適合新手的教學網站會教關於抓取這種網站的?
可否給點指教
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.78.227.126 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1564066908.A.C90.html
→ alvinlin: 剛好我最近也在研究類似的內容。我花了點時間看你的內容 07/25 23:40
→ alvinlin: 。其實這個網頁不太難。它已經在後端跑完了,前端只是HT 07/25 23:40
→ alvinlin: ML而己。 07/25 23:40
→ alvinlin: 首先你要去研究一下HTML的結構。然後如果還有時間,看一 07/25 23:43
→ alvinlin: 下JavaScript。你的Ytb的那個連結只是和你說如果你的網 07/25 23:43
→ alvinlin: 頁前端有JavaScript在執行,你用來抓網頁的內容會變得不 07/25 23:43
→ alvinlin: 同,因為JS會改變網頁呈現的內容。 07/25 23:43
→ alvinlin: 總結就是,python把很多東西簡化了,但如果你不了解它幫 07/25 23:47
→ alvinlin: 你簡化的東西,你還是得先花時間瞭解它才知道怎麼運用。 07/25 23:47
→ alvinlin: 以你的例子,bs4,scrpy,它的背後還是HTML的結構,如果你 07/25 23:47
→ alvinlin: 不了解DOM tree, HTML elements, Tags, nodes, 這些都值 07/25 23:47
→ alvinlin: 得你很快的去看一下再回來爬蟲這個題目。 07/25 23:47
→ alvinlin: 我前陣子剛好在讀jJavaScript,有些也看不太懂,所以去 07/25 23:50
→ alvinlin: 翻了HTML的書,兩相對照就看懂了。提供你參考。 07/25 23:50
推 TitanEric: 推樓上用心回答~ 07/25 23:56
→ vi000246: 看起來是用F1_10_ETFData.json來render頁面的 07/26 01:41
→ vi000246: 1.開F12看Network->XHR頁籤使用的api 07/26 01:42
→ vi000246: 2.用js解析json裡的資料 應該就能抓到你要的東西了 07/26 01:43
推 yummy8765: 推1~n樓用心回答 07/26 06:51
推 powyo: 不嫌速度慢的話用selenium最簡單 07/26 09:23
→ powyo: selenium 自動化操作只要搞懂裡面的doom物件名稱就好 07/26 09:24
→ yeeche: 太感謝樓上所有大大的認真說明 07/26 09:48
→ yeeche: 所以 聽起來我要先搞懂的關鍵字 07/26 09:49
推 powyo: 最簡單用chrome 按F12看就好 07/26 09:50
→ yeeche: 1. HTML 2. doom 3. javascript 然後再去看爬蟲 對嗎? 07/26 09:52
→ powyo: chrome開起來 按F12 就能看到裡面的元素 07/26 09:53
→ powyo: 把你要抓的部分 看他是哪層元素包起來 07/26 09:54
→ yeeche: 謝謝powyo大大 在請問一個丟臉的小問題 07/26 09:55
→ powyo: 用selenium 可以指定抓取元素 07/26 09:55
→ yeeche: 如果我看到我想要抓的數字 但是我卻還是搞不懂該怎麼處理 07/26 09:55
→ yeeche: 我除了看selenium之外 是不是要先去惡補其他knowledge? 07/26 09:56
→ yeeche: 我的程度只到 如果數字是直接寫在HTML上 我自己會抓了 07/26 09:57
→ yeeche: 透過簡單的抓取 還有string處理 只會降(程度真的低..) 07/26 09:57
推 powyo: 不懂你的意思 你是要抓取全部的資料? 還是特定的 07/26 09:58
→ yeeche: 我會先去看看能否看懂selenium 謝謝大家的回覆 07/26 09:59
→ powyo: 看起來這網站會定時更新資料 所以抓到的也不是最新的 07/26 09:59
→ yeeche: 也非常感謝 alvinlin vi000246 熱情回應 07/26 10:00
→ yeeche: 對 我要每隔一段時間抓取 like 5min醬子 07/26 10:01
→ yeeche: 抓取那些數字的資料 就是我以為的動態資料 07/26 10:01
→ yeeche: 我不用很即時 甚至15min抓一次 也很OK 07/26 10:02
推 powyo: 那就用個timer去抓取就好啊 甚至用排程也可以 07/26 10:05
→ yeeche: 對 我是打算用timer 07/26 10:08
→ jwolf1211: 是打算寫投資用的? 07/30 19:21