我正在尝试使用反向降价Ruby gem将HTML页面转换为Markdown。不幸的是它失败了:
/usr/lib/ruby/1.9.1/rexml/parsers/treeparser.rb:95:in `rescue in parse': #<REXML::ParseException: Missing end tag for 'img' (got "td") (REXML::ParseException)
来源包含一些IMG
,INPUT
等标记,这些标记以>
而不是/>
结尾。
我已经尝试过tidy_ffi gem:
doc = Nokogiri::HTML(TidyFFI::Tidy.new(Nokogiri::HTML(page).to_html,
:numeric_entities => 1,
:output_html => 1,
:merge_divs => 0,
:merge_spans => 0,
:join_styles => 0,
:clean => 1,
:indent => 1,
:wrap => 0,
:drop_empty_paras => 0,
:literal_attributes => 1).clean)
但这没有任何区别。有什么建议吗?
答案 0 :(得分:1)
反向降价实际上假设降价处理器生成格式良好的XHTML。如果你没有,你可能想尝试html2markdown宝石。它使用Nokogiri解析,并且可能更强大(免责声明:我没有使用它)。
答案 1 :(得分:-2)
我创建了一个摘录html的宝石:https://www.ruby-toolbox.com/gems/auto_excerpt也许你可以使用它或查看它用来执行此操作的代码?不确定这是否回答了这个问题。
其实我刚注意到你两次打电话给Nokogiri :: HTML:Nokogiri::HTML(TidyFFI::Tidy.new(Nokogiri::HTML(page).to_html
我不确定你得到的错误是来自Nokogiri还是TifyFFI。