[問題] 爬蟲個股公開資訊

看板R_Language作者 (J)時間8年前 (2017/08/27 17:05), 8年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 至公開資訊觀測站 > 營運概況 > 財務比率分析 > IFRS 後 > 財務分析資料, 爬蟲公司名稱, 以及財務分析資料的表格. 過去爬蟲以 id 或 class 爬很方便, 這次碰到沒有唯一 id 或 class 的項目, 用了最根部的 id:table01 完全爬不下來, 表格內的 class 又各有不同, 也嘗試了 xpath 都爬不下來, 求解版上的各位,非常謝謝 [程式範例]: url <- 'http://mops.twse.com.tw/mops/web/t05st22_q1' co_id = 2330 res <- POST(url, body = list( step = 1, firstin = 1, co_id = co_id, isnew = FALSE, # 歷史資料 year = 106, # 年度 encode = 'form') res_text <- content(res, as = 'text', encoding = 'UTF-8') #------------------------------------------------------------------# # 公司名稱 (因為公司名稱沒有唯一的 id 或 class 可獲取,因此用 xpath #------------------------------------------------------------------# name <- res_text %>% read_html(encoding = 'UTF-8') %>% html_node('//*[@id="table01"]/table[2]/tbody/tr/td/b/') %>% html_text() #==> 錯誤訊息:Error in tokenize(css) : Unexpected character '/' found at position 1 #------------------------------------------------------------------# # 表格 #------------------------------------------------------------------# table <- res_text %>% read_html(encoding = 'UTF-8') %>% html_node(xpath = '//*[@id="table01"]/center[2]/table/tbody/tr[1]/th[3]') %>% html_text() #==> table 為 NA #----再嘗試將 html_text() 替換成 html_table()----# table <- res_text %>% read_html(encoding = 'UTF-8') %>% html_node(xpath = '//*[@id="table01"]/center[2]/table/tbody/tr[1]/th[3]') %>% html_table() #==> 錯誤訊息:Error in UseMethod("html_table") : 沒有適用的方法可將 'html_table' 套用到 "xml_missing" 類別的物件 [環境敘述] > sessionInfo() R version 3.4.0 (2017-04-21) Platform: x86_64-apple-darwin15.6.0 (64-bit) Running under: OS X El Capitan 10.11.6 Matrix products: default BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib locale: [1] zh_TW.UTF-8/zh_TW.UTF-8/zh_TW.UTF-8/C/zh_TW.UTF-8/zh_TW.UTF-8 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.159.167.219 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1503824722.A.664.html ※ 編輯: k5171 (49.159.167.219), 08/27/2017 17:12:03
文章代碼(AID): #1PeejIPa (R_Language)
文章代碼(AID): #1PeejIPa (R_Language)