网页数据抓取软件(()(-post类的节点中))
优采云 发布时间: 2021-11-11 12:06网页数据抓取软件(()(-post类的节点中))
在节点中,其中的投票数
在 .vote-count-post 类的节点中:
问题 %>%
html_ _nodes(".question-summary.vote-count-post") %>%
html_ _text() %>%
as.integer()
## [1] 1429 746 622 533 471
同样,下面的一段代码用于提取答案的数量:
问题 %>%
html_ _nodes(".question-summary.status strong") %>%
html_ _text() %>%
as.integer()
## [1] 21 15 8 11 7
但是,如果要继续提取每个问题的标签,则比较困难,因为不同问题的标签数量可能不同。
在下面的代码中,我们首先选择所有问题的标签集,然后通过迭代提取每个集合中的标签:
问题 %>%
html_ _nodes(".question-summary.tags") %>%
lapply(功能(节点){
节点%>%
html_ _nodes(".post-tag") %>%
html_ _text()
}) %>%
字符串
## 5 个列表
## $: chr [1:2] "r" "r-faq"
## $: chr [1:4] "r" "sorting" "dataframe" "r-faq"
## $: chr [1:4] "r" "sapply" "tapply" "r-faq"
## $: chr [1:5] "r" "join" "merge" "dataframe" ...
## $: chr [1:2] "r" "ggplot2"
以上所有数据采集过程都在同一个网页上进行。想象一下如果你需要从多个页面采集
我应该怎么做来采集数据?假设我们访问此页面上的每个问题(例如
q/5963269/2906900)。注意右上角有个“信息框”(information box),我
我们以列表的形式提取每个问题的“信息框”,如图14-14所示。
通过检查,我们发现#qinfo正是每个问题页面的“信息框”
“键”(key)。然后,选择所有问题的超链接并提取每个问题的 URL
并迭代,读取每个问题页面,然后使用#qinfo从中提取信息框:
问题 %>%
html_ _nodes(".question-超链接") %>%
html_ _attr("href") %>%
lapply(功能(链接){