【发布时间】:2016-09-13 03:36:16
【问题描述】:
我似乎不明白为什么 Nokogori 没有正确解析这个 html 文件。这个 html 文件是从 Delicious 导出的书签。它有 400 个链接,但总是只解析出 254 个链接。我还有其他 Delicious html 导出文件,它们也只找到 254 个链接(具有不同的链接数量)和一个正确解析链接的链接(超过 2000 个链接),所以似乎可能有特定链接导致问题,但是我真的不确定。我在这里链接到 html,因为 html 使这篇文章的正文超过了字符限制。这是一个html的例子(实际的html有400多个标签):
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<!-- This is an automatically generated file.
It will be read and overwritten.
Do Not Edit! -->
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><A HREF="http://www.lecartelclothing.com/" ADD_DATE="1459226337" PRIVATE="1" TAGS="montreal,art,design">Le Cartel | Le Cartel Clothing Inc.</A>
<DT><A HREF="http://parkdaleprojectread.org/" ADD_DATE="1459226204" PRIVATE="1" TAGS="ngo">Parkdale Project Read</A>
<DT><A HREF="http://darkmp3.ru/" ADD_DATE="1458608207" PRIVATE="1" TAGS="music,blogs,music_blog,download">Dark mp3</A>
<DT><A HREF="http://www.sbs.com.au/programs/the-family-law/article/family-law-episode-guide" ADD_DATE="1458603937" PRIVATE="1" TAGS="asian,china,cinema">The Family Law: Watch the series | Programs</A>
<DT><A HREF="http://asiansdoingeverything.tumblr.com/" ADD_DATE="1458602744" PRIVATE="1" TAGS="asian,blogs,china">Asians Doing Everything</A>
</DL></p>
我正在使用 Carrierwave gem 上传 html 文件并对其进行解析。我一直在使用的这段代码是(其中 html_upload 是使用 Carrierwave 的模型实例):
doc = Nokogiri::HTML.parse html_upload.file.read
puts doc.css('a').count
【问题讨论】:
-
欢迎来到 Stack Overflow。请阅读“minimal reproducible example”。您需要问题本身中的最小输入 (HTML) 以及预期输出。不要指望我们到场外为您追踪或减少该信息;相反,请帮助我们帮助您。链接腐烂然后断开,当他们这样做时,您的问题对我们或其他寻求类似解决方案的人没有任何意义。
-
我试过了,但达到了字符限制,当时我认为 html 的长度与答案有关。
-
既然您知道这不是真的,最好解决这个问题,使其符合准则。