1364 6

[问答] 用R语言爬取XML数据,无法读取两个换行符<br>之间的文本,求各位大神指教,谢谢 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

大专生

81%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
413 点
帖子
40
精华
0
在线时间
67 小时
注册时间
2019-11-6
最后登录
2020-4-27

楼主
春运专用小马扎 发表于 2019-12-2 16:54:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如下图所示,想要读取两个<br/>之间的文本内容

以下为前期准备的R程序,以及已经读取的内容:

install.packages("rvest")


install.packages("stringr")
install.packages("XML")
install.packages("xml2")
library(xml2)
library(rvest)
library(XML)
library(stringr)
url <- "https://lexjansen.com/cgi-bin/xsl_transform.php?x=pharmasug-cn2018#PharmaSUG-CN2018-st008"
web=read_html(url)
html_nodes(web,".stream span")%>%html_text
html_nodes(web,".paper a[href*='lexjansen']")%>%html_text
html_nodes(web,".papera[href*='lexjansen']")%>%html_attr("href")



用XPATH读取的结果如下:


二维码

扫码加我 拉你入群

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

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


回帖推荐

zhou1_20 发表于2楼  查看完整内容

((web %>% html_nodes('#rightpanel > div:nth-child(n+11)')%>% html_text())[1:68] %>% str_split('\n|Pages:|Size:',simplify = T))[,1:4] %>% as.data.frame() %>% dplyr::rename(title=V1, author=V2, page=V3, size=V4)%>% DT::datatable()

沙发
zhou1_20 发表于 2019-12-2 20:25:23
((web %>% html_nodes('#rightpanel > div:nth-child(n+11)')%>%
          html_text())[1:68] %>%
  str_split('\n|Pages:|Size:',simplify = T))[,1:4] %>%
  as.data.frame() %>%
  dplyr::rename(title=V1, author=V2, page=V3, size=V4)%>%
  DT::datatable()

已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

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

藤椅
春运专用小马扎 发表于 2019-12-3 10:54:04
zhou1_20 发表于 2019-12-2 20:25
((web %>% html_nodes('#rightpanel > div:nth-child(n+11)')%>%
          html_text())[1:68] %>%
  st ...
太厉害了。。。谢谢大神!

板凳
春运专用小马扎 发表于 2019-12-3 14:16:01
zhou1_20 发表于 2019-12-2 20:25
((web %>% html_nodes('#rightpanel > div:nth-child(n+11)')%>%
          html_text())[1:68] %>%
  st ...
您好,程序第一句web %>% html_nodes('#rightpanel > div:nth-child(n+11)'中的定位方式不是特别理解,为什么要写成“nth-child(n+11)”?谢谢!

报纸
zhou1_20 发表于 2019-12-3 14:34:52
春运专用小马扎 发表于 2019-12-3 14:16
您好,程序第一句web %>% html_nodes('#rightpanel > div:nth-child(n+11)'中的定位方式不是特别理解,为 ...
#rightpanel 下的子节点从第11个开始取步长为1,即1n+11. 一般 an+b表示从第b个节点开始步长为2的所有节点
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 精彩帖子

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

地板
春运专用小马扎 发表于 2019-12-3 15:18:18
zhou1_20 发表于 2019-12-3 14:34
#rightpanel 下的子节点从第11个开始取步长为1,即1n+11. 一般 an+b表示从第b个节点开始步长为2的所有节点 ...
哦~~明白了,再次感谢您!请问您有没有这方面的相关书籍或资料推荐?非常感谢。

7
_㈨_ˋ廝守 学生认证  发表于 2019-12-5 15:53:33
想要请问,诸如这类的网站https://www.topuniversities.com/university-rankings/university-subject-rankings/2019/arts-humanities
怎么爬取院校名称呢?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-7 23:50