gpt4 book ai didi

ruby - 从网页中抓取所有可见文本

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:34 26 4
gpt4 key购买 nike

是否有一种简单的方法来解析 HTML 页面以仅获取用户可见的文本?我想去掉所有标签、链接、JavaScript 并返回页面上的文本内容。

我只是想存储信息并稍后返回,但在搜索中使用它。

尝试过 Nokogiri 和 Capybara/Poltergeist

doc.css('body').text

但这给了我各种我不想看到的 JavaScript 和垃圾。

有没有一种方法可以只剥离文本位并将它们批量化为一个字符串,同时忽略所有“代码”?

最佳答案

如果你想得到真实用户得到的文本,那就模拟一个真实用户。一种方法是使用类似 PhantomJS 的 Watir-Webdriver,例如:

require 'watir-webdriver'

browser = Watir::Browser.new :phantomjs
browser.goto 'https://google.com'
puts browser.body.text

当然,要使其正常工作(具体为 PhantomJS),您需要下载相应 JS 的文件 ( PhantomJS Downloads ) 并将其放入您的 PATH 中。

你得到这一切的原因是 Nokogiri 不像真正的用户那样行事,它只是抓取和解析可能包含一堆嵌入式 HTML 等的 HTML 文档。

关于ruby - 从网页中抓取所有可见文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26779088/

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