→ s860134: 有 id 幹嘛不用 id.... <div id="gamechart-hot"> 05/11 12:09
→ s860134: class 的功能是為了配合 css 和 js 進行瀏覽器渲染加工 05/11 12:09
→ s860134: 時的分類,所以可以預期幾乎不會是只出現一次 05/11 12:10
推 art1: 要寫爬蟲最好去了解一下 html 05/11 12:49
→ alubasteve: 給s860134,多謝你的指點,目前已經試出以下結果 05/11 18:31
→ alubasteve: 只是也如art1所說,不懂html結構的話很難進行下去 05/11 18:40
→ alubasteve: 我現在才知道,要抓資料要同時懂程式跟網頁才行 05/11 19:17
→ alubasteve: 卻無法拆解出最後的部分,讓我可以拉出排行榜的遊戲名 05/11 20:05
→ alubasteve: 附帶一題,請問id或class的名稱你們都是怎麼打的 05/11 20:07
→ alubasteve: 我都只能一邊看網頁右邊的名稱一邊用手打字 05/11 20:08
→ alubasteve: 沒有直接COPY貼上到程式裡頭的方法嗎 05/11 20:09
推 art1: print(soup.select('a.hotgame > p.game')) 05/11 20:26
→ art1: 這是利用 css 選擇器來選到你要的元素,所以也要去了解一下 05/11 20:27
→ art1: 這樣才能比較有效率的抓出想要的資料 05/11 20:27
推 art1: select 會回傳串列(list),所以串列元素的text就是你要的 05/11 20:34
→ alubasteve: 所以我猜你的程式意思是把a class="hotgame"到 05/12 00:10
→ alubasteve: p class="game"之間的資料以序列形式抓出來 05/12 00:11
→ alubasteve: 只是我不明白若我想要只看最後排行榜的資料 05/12 00:13
→ alubasteve: 實際榜單的遊戲排行而去掉前後的內容 05/12 00:16
推 art1: 你要注意印出來的資料最前面跟最後面有 [ 跟 ] 05/12 00:38
→ art1: 這代表在[]裡面(也就是串列list)的元素是以逗號 , 隔開 05/12 00:39
→ art1: 串列裡面的每一個元素其實都是 bs4 建構的一種物件,包含了 05/12 00:40
→ art1: 各種資料和函式,你需要的只是串列元素的text屬性值,至於 05/12 00:42
→ art1: 排行,初步看是按照串列裏面的順序,因為神魔存在索引值 0 05/12 00:44
→ art1: 的位置 05/12 00:44
→ art1: 存取text屬性值的程式碼像這樣 05/12 00:45
→ art1: soup.select('a.hotgame > p.game')[0].text 05/12 00:45
→ art1: 實際上不會這樣存取,而是用 for..in...迴圈來讀取 05/12 00:46
→ art1: for item in soup.select('a.hotgame > p.game'): 05/12 00:46
→ art1: print(item.text) 05/12 00:47
推 art1: a.hotgame > p.game 是指只要有符合這個順序與類別名稱的 05/12 00:50
→ art1: html 元素都抓出來 05/12 00:50
→ art1: 應該還要加上一個標籤名稱才對 05/12 00:51
→ art1: select 應該是專門用來透過 CSS 選擇器找資料的函式 05/12 00:53
→ art1: 應該說找 html 元素才對 05/12 00:54
→ alubasteve: 我原本以為是直接去把<p class="game">後的答案抓出來 05/12 09:24
→ alubasteve: 但看來不是,而是遊戲名稱是屬於item要用for叫出來才對 05/12 09:26
→ alubasteve: 你說的"a.hotgame > p.game 是指只要有符合這個順序 05/12 09:30
→ alubasteve: 與類別名稱的html 元素都抓出來"是指串列裡原本有很多 05/12 09:31
→ alubasteve: 資料,但是透過a.hotgame > p.game分離出想要的部分 05/12 09:32
→ alubasteve: 請問是這樣嗎? 05/12 09:50
→ alubasteve: 另外,請問你有何推薦的網頁架構或是抓資料的資源 05/12 09:54
→ alubasteve: 這樣一來我日後要練習的話比較容易找到起點 05/12 09:55
→ alubasteve: 搞不懂自己錯在哪裡也搞不懂自己對在哪裡真的很頭痛 05/12 09:57
推 art1: 對,因為 soup 就是用來存 html 解析之後得到的資料 05/12 10:57
→ art1: 我一開始寫爬蟲時對 html 跟 python 都不太了解,也是像你這 05/12 10:59
→ art1: 樣一層一層找下去,但這種方式太痛苦了 05/12 10:59
→ art1: 後來學了 html 之後,就比較知道要怎麼快速取出已解析的html 05/12 11:00
→ art1: 元素 05/12 11:01
→ art1: 在學的時候是連 CSS、JavaScript一起學,實際用 JavaScript 05/12 11:02
→ art1: 透過 CSS 選擇器去操作各種 html 元素 05/12 11:02
→ art1: 所以之後就了解到 bs4 已經幫我們把 html 元素都解出來了 05/12 11:03
→ art1: 只要知道存在哪些對應的位置,並學會取出的語法就好 05/12 11:04
→ art1: 如果不懂 CSS 選擇器的話,用找字串的方式去處理比較沒效率 05/12 11:05
推 art1: 看別人寫爬蟲都是練習爬一些把資料整合呈現的網站,例如電影 05/12 11:10
→ art1: 相關、拍賣相關、股票相關之類的 05/12 11:10
→ alubasteve: 給art1,我還是第一次聽說CSS選擇器,請問這是軟體嗎 05/12 13:39
→ alubasteve: 請問你都推薦哪種?或是哪種網頁你比較推薦我去瞭解 05/12 13:39
→ alubasteve: 我以後要抓網頁的話,也是需要有一個好的起點,不然 05/12 13:58
→ alubasteve: 我這樣瞎猜也不是辦法,還是要對網頁架構有足夠瞭解 05/12 13:58
推 art1: developer.mozilla.org/zh-TW/docs/Glossary/CSS_Selector 05/12 15:41
→ art1: 前面自行加上https:// 05/12 15:41
→ alubasteve: 多謝,原來mozilla就有資料,我只知道FIREFOX而已 05/12 18:02
推 jiyu520: google比別人給要來的更好 05/12 21:41
推 st1009: 右鍵 編輯html 05/13 21:33
→ st1009: 這樣就能複製了 05/13 21:33