楼主: cholet110
5299 9

[问答] 关于用rvest抓取<script>标签里数据的问题 [推广有奖]

  • 0关注
  • 1粉丝

等待验证会员

小学生

92%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
100 点
帖子
12
精华
0
在线时间
5 小时
注册时间
2015-8-23
最后登录
2016-3-11

楼主
cholet110 发表于 2015-8-29 22:19:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
关于抓取新浪微博的时候,

程序如下;
library(rvest)
library(stringr)
url = 'http://weibo.com/p/100808f8b273063bbf129c4b4c8d4b88490682?k=Galaxy+S6+edge&from=526&_from_=huati_topic'
web<-html(url,encoding="UTF-8")
web%>% html_nodes(".W_f12")

网址:
http://weibo.com/p/100808f8b273063bbf129c4b4c8d4b88490682?k=Galaxy+S6+edge&from=526&_from_=huati_topic

附图1:想抓取的数据 无标题.png 附图2:网页HTML代码 2.png 问题:待抓的数据794.9万放置在<script>里面,所以无法抓取,求大拿帮组
二维码

扫码加我 拉你入群

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

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

关键词:Vest VES Est Library Galaxy 新浪微博 library 标签 程序 大拿

沙发
cholet110 发表于 2015-8-30 14:16:11
顶起来,各位大拿帮回答一下

藤椅
ryoeng 在职认证  发表于 2015-8-30 17:20:14
提示: 作者被禁止或删除 内容自动屏蔽

板凳
cholet110 发表于 2015-8-31 15:43:53
ryoeng 发表于 2015-8-30 17:20
登入后再说呗。。。(咱模拟了一下,也登入不了)
http://cos.name/cn/topic/411615/
我的想法是,794.9万是放置在<script>里面,如果能把网页源文件拿到,直接进行字符串处理,也是可以抓取到794.9万的,但是如何能把整个网页源文件读到R文件里呢?
多谢

报纸
ryoeng 在职认证  发表于 2015-8-31 19:56:13
提示: 作者被禁止或删除 内容自动屏蔽

地板
马甲1号 发表于 2015-9-1 09:38:28
思路: 用rvest把script里面的js抓出来, 再用正则表达式处理.

7
cholet110 发表于 2015-9-1 18:16:36
ryoeng 发表于 2015-8-31 19:56
ryoeng 在职认证  发表于 昨天 17:20 |只看作者
不是说了,得登入后再说呗。。。(咱模拟了一下登入微博 ...
我可以在先人工登录了,然后就可以抓,因为需要抓的网站个数多,所以无法人工,呵呵

8
cholet110 发表于 2015-9-1 18:17:18
马甲1号 发表于 2015-9-1 09:38
思路: 用rvest把script里面的js抓出来, 再用正则表达式处理.
我现在就是这个思路,但是如何用rvest把script里面的js抓出来?

9
cholet110 发表于 2015-9-1 20:01:27
ryoeng 发表于 2015-8-31 19:56
ryoeng 在职认证  发表于 昨天 17:20 |只看作者
不是说了,得登入后再说呗。。。(咱模拟了一下登入微博 ...
我的理解是因为利用浏览器,我不登录也能看到我想要抓取的数字,并且网页源文件里也能看到(在script标签里),是不是R语言不用登录,只要我把源文件抓下来,就可以利用正则选出来? 可是如何把该页面的源文件利用R抓下来呢

10
ryoeng 在职认证  发表于 2015-9-2 07:48:57

搞不懂就问人,搞得懂就答人;没有人懂,还可以问神...

提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

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

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