楼主: ivy_cyh
5136 7

[实际应用] 【求助】R语言抓取动态网页 [推广有奖]

  • 0关注
  • 3粉丝

硕士生

74%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
4.4143
学术水平
6 点
热心指数
6 点
信用等级
5 点
经验
6039 点
帖子
184
精华
0
在线时间
165 小时
注册时间
2008-3-4
最后登录
2024-9-18

楼主
ivy_cyh 发表于 2018-3-21 10:13:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我的程序如下:(因为刚学习R不久,看了网上各种分析,比葫芦画瓢加载了一堆包)

无标题.png


# 到这里就会提示错误:(也不是每次都会提示,10次里面有9次提示,1次成功)
Error in matrix(NA_character_, nrow = n, ncol = maxp) :
  'ncol'值不对(要么是太大,要么是含NA)
此外: Warning messages:
1: In max(p) : max里所有的参数都不存在;回覆-Inf
2: In matrix(NA_character_, nrow = n, ncol = maxp) :
  NAs introduced by coercion to integer range
最后一条语句 去掉[[2]][,1:9]也是一样的不成功

由研究了一下:抓取不成功的时候查看remDr$getPageSource(),有如下错误信息:


Selenium message:No active session with ID 1380958ab486bf74ef356b285273d483

错误:    Summary: NoSuchDriver
         Detail: A session is either terminated or not started
         Further Details: run errorDetails method



请高手指点迷津!




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言 Library driver BRARY rjson

be busy living, be busy dying.

沙发
cheetahfly 在职认证  发表于 2018-3-21 13:59:57
你看的这个资料挺有意思的,能不能分享一下网址?

藤椅
ivy_cyh 发表于 2018-3-21 14:35:06
[quote]cheetahfly 发表于 2018-3-21 13:59 http://www.sse.com.cn/assortment/options/price/
这是我要抓的数据的网址

板凳
cheetahfly 在职认证  发表于 2018-3-21 14:41:43
ivy_cyh 发表于 2018-3-21 14:35
cheetahfly 发表于 2018-3-21 13:59 http://www.sse.com.cn/assortment/options/price/
这是我要抓 ...
不好意思,我没说清楚,是那个有R语言代码的网页或资料

报纸
jiangbeilu 学生认证  发表于 2018-3-21 16:27:21
cheetahfly 发表于 2018-3-21 14:41
不好意思,我没说清楚,是那个有R语言代码的网页或资料
这个是用Rselenium这个包来完成的。相当于是模拟浏览器进行操作。如果是用chrome,是可以看得到具体的页面的。
chrome的要求高一些,推荐可以先尝试phatomjs这个浏览器吧。
已有 1 人评分论坛币 收起 理由
cheetahfly + 30 精彩帖子

总评分: 论坛币 + 30   查看全部评分

地板
jiangbeilu 学生认证  发表于 2018-3-21 16:50:47
  1. cmm <- 'java -jar selenium-server-standalone-3.4.0.jar'
  2. system(cmm,wait=FALSE)
  3. Sys.sleep(20)

  4. library(RSelenium)
  5. library(xml2) #read_html
  6. library(rvest) # html_table
  7. startServer()
  8. # remDr <- remoteDriver(browserName = "phantomjs")
  9. remDr <- remoteDriver(browserName = "chrome")
  10. remDr$open()

  11. ## 打开该页面
  12. url_l <- "http://www.sse.com.cn/assortment/options/price/"
  13. remDr$navigate(url_l)

  14. webpage <- read_html(remDr$getPageSource()[[1]][1])
  15. data_temp <- html_table(webpage,fill=T)[[2]][,1:9]
复制代码
我这样子是没有问题的。
我没有用最新版本的。
selenium-server-standalone-3.4.0.jar这个jar包要自己去下载好了后,放到当前工作目录。并且把java安装好,执行语句才会进行启动。
然后再研究一下chrome或者phantomjs是怎么操作的就可以了。


结果如下:
  1. > data_temp
  2.                 认购 认购.1  认购.2 认购.3 03月份              认沽 认沽.1 认沽.2 认沽.3
  3. 1       合约交易代码 当前价  涨跌幅 前结价 行权价      合约交易代码 当前价 涨跌幅 前结价
  4. 2  510050C1803A02600 0.3285  -4.14% 0.3427 2.553A 510050P1803A02600 0.0008 33.33% 0.0006
  5. 3  510050C1803A02650 0.2790  -5.23% 0.2944 2.602A 510050P1803A02650 0.0012 20.00% 0.0010
  6. 4  510050C1803A02700 0.2307  -6.37% 0.2464 2.651A 510050P1803A02700 0.0020 25.00% 0.0016
  7. 5  510050C1803A02750 0.1830  -7.53% 0.1979 2.700A 510050P1803A02750 0.0030 11.11% 0.0027
  8. 6  510050C1803A02800 0.1356  -9.66% 0.1501 2.749A 510050P1803A02800 0.0051 27.50% 0.0040
  9. 7  510050C1803A02850 0.0916 -13.83% 0.1063 2.798A 510050P1803A02850 0.0105 40.00% 0.0075
  10. 8  510050C1803A02550 0.3763  -4.13% 0.3925 2.504A 510050P1803A02550 0.0007 16.67% 0.0006
  11. 9  510050C1803A02500 0.4272  -3.39% 0.4422 2.455A 510050P1803A02500 0.0004  0.00% 0.0004
  12. 10 510050C1803A02900 0.0554 -15.81% 0.0658 2.847A 510050P1803A02900 0.0212 27.71% 0.0166
  13. 11 510050C1803A02950 0.0285 -17.87% 0.0347 2.896A 510050P1803A02950 0.0420 22.09% 0.0344
  14. 12 510050C1803A03000 0.0128 -19.50% 0.0159 2.946A 510050P1803A03000 0.0762 15.81% 0.0658
  15. 13 510050C1803A03100 0.0027 -20.59% 0.0034 3.044A 510050P1803A03100 0.1664 10.42% 0.1507
  16. 14 510050C1803A03200 0.0011 -26.67% 0.0015 3.142A 510050P1803A03200 0.2607  5.55% 0.2470
  17. 15 510050C1803A03300 0.0006   0.00% 0.0006 3.240A 510050P1803A03300 0.3588  4.00% 0.3450
  18. 16 510050C1803M02800 0.0892 -13.57% 0.1032  2.800 510050P1803M02800 0.0130 60.49% 0.0081
  19. 17 510050C1803M02850 0.0524 -16.83% 0.0630  2.850 510050P1803M02850 0.0230 32.95% 0.0173
  20. 18 510050C1803M02900 0.0261 -18.44% 0.0320  2.900 510050P1803M02900 0.0479 29.81% 0.0369
  21. 19 510050C1803M02950 0.0109 -24.83% 0.0145  2.950 510050P1803M02950 0.0805 17.86% 0.0683
  22. 20 510050C1803M03000 0.0050 -24.24% 0.0066  3.000 510050P1803M03000 0.1250 13.64% 0.1100
  23. 21 510050C1803M02750 0.1371  -8.36% 0.1496  2.750 510050P1803M02750 0.0050 16.28% 0.0043
  24. 22 510050C1803M02700 0.1830  -7.53% 0.1979  2.700 510050P1803M02700 0.0030 11.11% 0.0027
  25. 23 510050C1803M02650 0.2336  -5.46% 0.2471  2.650 510050P1803M02650 0.0019 18.75% 0.0016
  26. 24 510050C1803M03100 0.0014 -30.00% 0.0020  3.100 510050P1803M03100 0.2198  7.22% 0.2050
  27. 25 510050C1803M03200 0.0007 -12.50% 0.0008  3.200 510050P1803M03200 0.3219  5.26% 0.3058
  28. 26 510050C1803M03300 0.0006   0.00% 0.0006  3.300 510050P1803M03300 0.4180  3.21% 0.4050
  29. 27 510050C1803M03400 0.0004  33.33% 0.0003  3.400 510050P1803M03400 0.5183  2.63% 0.5050
  30. 28 510050C1803M03500 0.0003   0.00% 0.0003  3.500 510050P1803M03500 0.6247  3.07% 0.6061
  31. 29 510050C1803M03600 0.0002   0.00% 0.0002  3.600 510050P1803M03600 0.7241  2.71% 0.7050
  32. 30 510050C1803M02600 0.2826  -4.53% 0.2960  2.600 510050P1803M02600 0.0011 22.22% 0.0009
复制代码


已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
菊花冰糖水 + 1 + 1 精彩帖子
万人往LVR + 5 + 4 + 4 + 4 观点有启发

总评分: 论坛币 + 5  学术水平 + 5  热心指数 + 5  信用等级 + 4   查看全部评分

Tomorrow is another day!

7
ivy_cyh 发表于 2018-3-23 15:59:35
jiangbeilu 发表于 2018-3-21 16:50
我这样子是没有问题的。
我没有用最新版本的。
selenium-server-standalone-3.4.0.jar这个jar包要自己去下 ...
谢谢。这样的结果我有时候也是能得到的,但关键是,并不是每次可以得到这个结果。10次里面成功1次。这会是网络的原因吗?

8
ivy_cyh 发表于 2018-3-23 16:03:47
研究了一天,总结一下发现,共同学习进步:
(1)最新版的selenium已经不支持phantomjs了,因为chrome和firefox都出了无头版本。selenium-3.4.0 还支持。
(2)我的R是3.4.4版本的,startServer(),出来的结果是“startServer is now defunct.”
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 观点有启发

总评分: 论坛币 + 10   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 00:45