网页抓取文本提取问题:如何避免获取全页内容并精准提取目标文本
网页抓取文本提取问题:如何避免获取全页内容并精准提取目标文本
嘿,我看你现在抓取美联储网页的时候,直接抓了整个body的内容,导致拿到一大堆无关文本对吧?别着急,咱们来调整一下代码,精准定位到你要的目标内容就行~
第一步:定位目标元素
先打开浏览器的开发者工具(按F12就行),找到你要提取的正文部分,看看它对应的HTML标签或类名是什么。比如美联储的这类公告页面,正文通常会放在特定的容器里,比如带特定类名的<div>,或者一组<p>标签中。第二步:替换精准选择器
把你代码里的html_elements("body")换成刚才找到的精准选择器,这样就不会抓取整个页面的内容了。举个例子:
如果正文在class为press-release-content的容器里,就写成html_elements(".press-release-content");如果是所有正文段落,就用html_elements("p")。修改后的代码示例
for (i in 1:no_urls) { this_url <- urls_meetings[[i]] page <- read_html(this_url) # 替换成你找到的精准选择器,比如目标正文所在的容器类名 text_elements <- page |> html_elements(".press-release-content") text <- text_elements |> html_text2() # 优化日期提取:从meta标签获取更准确的发布日期 date_str <- page |> html_element("meta[property='article:published_time']") |> html_attr("content") date <- as.Date(date_str) date_1 <- gsub("-", "", as.character(date)) statements_list2[[i]] <- text names(statements_list)[i] <- date_1 }
另外补充个小建议:提取日期的时候,从页面的meta标签直接获取会比正则匹配body文本更靠谱,能避免因为文本格式变化导致的匹配错误哦~
备注:内容来源于stack exchange,提问作者JF96
相关产品推荐
相关产品推荐

