gpt4 book ai didi

r - 使用 rvest 在 R 中进行 Web 抓取并找到 html_note

转载 作者:行者123 更新时间:2023-12-01 13:14:36 24 4
gpt4 key购买 nike

我正在尝试查找当前的 html_note 以获取此论坛中每个帖子的回复数:https://d.cosx.org/ .我使用了 CSS 选择器,它说 .DiscussionListItem-count 但它似乎不起作用。

我的代码:

library(rvest)
library(tidyverse)
COS_link <- read_html("https://d.cosx.org/")
COS_link %>%
# The relevant tag
html_nodes(css = '.DiscussionListItem-count') %>%
html_text()

我想获取回复数,例如:第一个帖子 1k,第二个帖子 30。我想知道我是否遗漏了什么或者有人有更好的主意?

最佳答案

您可以使用 API 并解析 titleparticipantCount 属性的 json 响应

返回该信息的 API 端点是:

https://d.cosx.org/api

对响应进行子字符串化以删除尾随 0 和前导 ac76,然后使用所选的 json 库进行解析。


不太理想的是 regex从原始 url 中提取 json 字符串

library(rvest)
library(jsonlite)
library(stringr)

url <- "https://d.cosx.org/"

r <- read_html(url) %>%
html_nodes('body') %>%
html_text() %>%
toString()

x <- str_match_all(r,'flarum\\.core\\.app\\.load\\((.*)\\);')
json <- jsonlite::fromJSON(x[[1]][,2])
counts <- json$resources$attributes$participantCount

对于那些希望将标题与计数配对并且没有中文设置的人,同事帮我写了以下内容:

library(rvest)
library(jsonlite)
library(stringr)
library(corpus)

url <- "https://d.cosx.org/"
r <- read_html(url) %>%
html_nodes('body') %>%
html_text() %>%
toString()

x <- str_match_all(r,'flarum\\.core\\.app\\.load\\((.*)\\);')
json <- jsonlite::fromJSON(x[[1]][,2])
titles <- json$resources$attributes$title
counts <- json$resources$attributes$participantCount
cf <- corpus_frame(name = titles, text = counts)
names(cf) <- c("titles", "counts")

print(cf[which(!is.na(cf$counts)),], 100)

关于r - 使用 rvest 在 R 中进行 Web 抓取并找到 html_note,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com