是否有一种简单的方法来解析HTML页面以获取用户可见的文本? 我想摆脱所有标签,链接,JavaScript并返回页面上的文本内容。
我只是想存储信息并稍后再回来,但在搜索中使用它。
尝试了Nokogiri和Capybara / Poltergeist
doc.css('body').text
但这给了我各种各样的JavaScript和垃圾,我宁愿看不到。
是否有办法剥离文本并将其批量处理为字符串而忽略所有“代码”?
答案 0 :(得分:2)
如果您想获得真实用户获得的文本,请模拟真实用户。一种方法是使用像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文档等等。
答案 1 :(得分:1)
实际上真的很容易。
使用Capybara(在我的情况下使用PhantomJS,虽然我认为不重要)
@session.visit url
# Grab the text from the page
@session.text
# Grab the page title
@session.title
完美的工作......
答案 2 :(得分:0)