作者justleave (靜靜的就好)
看板R_Language
標題[問題] js生成的網頁 資料抓取
時間Wed Jul 17 15:19:11 2019
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[問題敘述]:
如下圖,想抓取紅色方框中的資料
https://imgur.com/gk9qBoH.jpg
已知該表格由javascript動態生成
爬了開發者工具 始終找不到資料存放的位置或網址
倒是下面的大表格中有找到資料
有想說是不是需要GET/POST來獲得資料
但找不到確切的url 不知從何下手
希望能有大大幫忙開示解惑
[程式範例]:
name <- "NovakDjokovic"
url2 <- paste0("
http://www.tennisabstract.com/cgi-bin/player.cgi?p=", name)
page2 <- read_html(url2)
html_text(page2)
會print出一堆程式碼但沒有我要的資料
[環境敘述]:
R version 3.3.3 (2017-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
[關鍵字]:
網頁爬蟲 rvest javascript
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.8.54 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1563347953.A.DD1.html
1F:推 whs2009: rselenium 可以試試 07/17 17:28
2F:→ whs2009: 如果要爬動態的話 07/17 17:28
3F:→ whs2009: 配合 chrome的 selectorgadget找出位址 07/17 17:29
4F:→ justleave: 因為是js生成 selectorgadget 找到的裡面沒資料 會試 07/17 18:10
5F:→ justleave: 試Rselenium 07/17 18:10
6F:→ celestialgod: 直接看它有沒有從什麼API取得資料 改成直接打API 07/17 19:20
更新一下
https://imgur.com/I9PKXj3.jpg
後來發現網頁元素中其實有找到資料
但用老方法css標籤以及xpath抓出的資料都是空白
誤以為資料不在裡面
下圖為程式執行結果
https://imgur.com/Vof8nOv.jpg
試了幾種方式都撈不出資料
※ 編輯: justleave (114.42.13.59 臺灣), 07/18/2019 08:29:59
7F:→ andrew43: 這個網頁大部份內容都是內JS生成,老方法是真的撈不到的 07/18 08:44
8F:→ andrew43: 它也沒有用到ajax。網頁主要表格刻在js,而你要的表格 07/18 08:48
9F:→ andrew43: 則是主要表格再做整理而已。 07/18 08:48
10F:→ andrew43: 所以,達成js render,或是直接取js中的數據再統計 07/18 08:50
11F:→ justleave: 後來用Rselenium解決了~感謝大家 07/19 00:21
12F:→ nbkl: 可以分享一下。解法嗎。 先前有遇到這樣子的問題。 但一直 08/26 15:20
13F:→ nbkl: 解不掉 08/26 15:20