如何用stackr库获取指定标签的全部问题及指定字段数据?
嗨,我来帮你调整查询代码,让你能精准获取带特定标签的Stack Overflow问题详情~
正确的查询代码(基于stackr包)
你之前用的stack_tags()其实不太适配你的需求,这个函数主要用来获取标签本身的元数据(比如标签的使用量、官方描述)。要抓取带指定标签的问题,应该用stack_questions()这个专门的问题检索函数,我给你调整好了代码:
library(stackr) # 定义你要查询的目标标签,单个标签直接写字符串,多个标签用向量,比如c("r", "dplyr") target_tags <- "r" # 执行查询,获取包含所需字段的所有问题 test <- stack_questions( tags = target_tags, num_pages = 1000000, # 设置足够大的页数,确保能抓取到所有符合条件的问题 pagesize = 100, # 每页最多返回100条,这是Stack Exchange API的上限 filter = "withbody" # 这个参数会返回问题正文,同时默认包含你需要的其他字段 )
关键细节说明
- 函数选对才高效:
stack_questions()是专门为检索问题设计的,能直接根据标签筛选内容,比stack_tags()更贴合你的需求 - 标签设置灵活:如果要同时查询带多个标签的问题,把
target_tags改成向量形式就行,比如c("r", "ggplot2"),这样就能拿到同时带这两个标签的问题 - 所需字段全包含:
filter="withbody"会返回问题正文,而stackr默认还会给你这些你需要的信息:tags:问题的所有标签creation_date:发布日期(如果是时间戳格式,用as.POSIXct(test$creation_date, origin="1970-01-01")就能转换成可读的日期时间)body:完整的问题内容owner:提问用户的详细信息(包含用户名、用户ID等)score:问题的投票数
小提示
如果发现返回的结果不全,可以检查下test的行数,要是API分页限制导致没抓全,要么再调大num_pages,要么用stack_paging()函数自动处理分页(不过stack_questions()默认会自动处理分页,只要num_pages足够大一般就没问题)
内容的提问来源于stack exchange,提问作者Konstancs
相关产品推荐
相关产品推荐

