如何从教职工官网爬取期刊论文标题与作者,无对应HTML标签怎么办
爬取目标站点论文信息的解决方向
- 第一步:手动定位目标元素的CSS选择器
通用教程里的HTML标签只对应教程的示例站点,不能直接套用到其他站点。你可以在浏览器打开目标教职工页面,按F12调出开发者工具,点击左上角的元素选择器,直接点选你要爬取的论文标题、作者区域,就能看到对应元素的专属选择器:你要爬取的站点的论文条目统一放在.list--result容器下,单篇论文对应.result类元素,论文标题存储在.result__title类标签中,作者信息存储在.result__meta类标签中。 - 第二步:调整rvest爬取逻辑
核心代码逻辑参考如下:# 加载依赖包 library(rvest) library(dplyr) # 自定义请求头模拟浏览器访问,避免被反爬拦截 headers <- c("User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36") # 读取单个教职工页面 page <- read_html("目标教职工页面的URL", httr::add_headers(.headers=headers)) # 提取论文条目列表 paper_items <- page %>% html_elements(".result") # 批量解析标题和作者信息,生成结构化表格 paper_df <- lapply(paper_items, function(x) { data.frame( title = x %>% html_element(".result__title") %>% html_text2() %>% trimws(), authors = x %>% html_element(".result__meta") %>% html_text2() %>% trimws(), stringsAsFactors = FALSE ) }) %>% bind_rows() - 第三步:批量爬取适配
如果你要爬取全体教职工的信息,先从学院师资列表页提取所有个人主页的链接存入列表,循环爬取时每次请求加1-3秒的延时,降低反爬触发风险。同时要添加异常判断逻辑,遇到没有论文的页面、请求失败的页面时自动跳过,避免脚本运行中断。 - 额外适配方案
如果后续爬其他站点时发现静态请求拿不到完整内容,大概率是页面内容靠JS动态渲染,可改用RSelenium模拟浏览器加载完全部内容后再做解析,当前目标站点的论文列表为静态渲染,不需要额外做动态加载适配。
内容的提问来源于stack exchange,提问作者HCAI
相关产品推荐
相关产品推荐

