楼主: 仙人掌掌
996 0

[问答] R进行网络爬虫 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

大专生

10%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
382 点
帖子
25
精华
0
在线时间
33 小时
注册时间
2018-8-1
最后登录
2020-10-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
代码:
library(xml2)
library(rvest)
library(stringr)
library(RCurl)
i=1:100
zsj=data.frame()
for(i in 1:100){
        web=read_html(str_c("https://www.so.com/s?ie=utf-8&src=dlm&shb=1&hsid=7aff54c8af32e44e&ls=n08f4f9b899&q=%E6%99%BA%E6%85%A7%E8%AD%A6%E5%8A%A1%E6%96%B0%E9%97%BB",i),encoding="UTF-8")
                link=web %>% html_nodes("cite") %>% html_text()#获取新闻链接
                title=web %>% html_nodes(".res_title") %>% html_text()#获取新闻标题
                        sj=data.frame(link,title)
                                zsj=rbind(zsj,sj)
}
write.csv(zsj,file="./zsj.csv")

大神们可以帮忙看一下代码有什么问题吗?出来的CSV文件里只有link和title两个单词,其它啥也没有了。

另外如果爬取的信息条目多了使用data.frame也会出现问题
for(i in 1:1500){
        web=read_html(str_c("https://www.so.com/s?ie=utf-8&src=dlm&shb=1&hsid=7aff54c8af32e44e&ls=n08f4f9b899&q=%E6%99%BA%E6%85%A7%E8%AD%A6%E5%8A%A1%E6%96%B0%E9%97%BB",i),encoding="UTF-8")
                link=web %>% html_nodes("cite") %>% html_text()#新闻链接
                title=web %>% html_nodes(".res_title") %>% html_text()#新闻标题
                time=web %>% html_nodes(".gray") %>% html_text()#新闻发布时间
                sites=web %>% html_nodes(".res-linkinfo") %>% html_text()#新闻发布网站
                        sj=data.frame(link,title,time,sites)
                                zsj=rbind(zsj,sj)
}

Error in data.frame(link, title, time, sites) :  参数值意味着不同的行数: 11, 0, 9, 10


其中HTML节点信息是用selectGadget获取的


二维码

扫码加我 拉你入群

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

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


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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 08:55