作者k5171 (J)
看板R_Language
标题[问题] 爬虫个股公开资讯
时间Sun Aug 27 17:05:19 2017
[问题类型]:
程式谘询(我想用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://webptt.com/cn.aspx?n=bbs/R_Language/M.1503824722.A.664.html
※ 编辑: k5171 (49.159.167.219), 08/27/2017 17:12:03