【问题标题】:How to check which part of page is an article? [closed]如何检查页面的哪一部分是文章? [关闭]
【发布时间】:2012-06-28 13:45:18
【问题描述】:

我想创建一个类似于 Instapaper 或 Readability 的工具,我想知道从网页中查找和获取文本的最佳方法是什么。你有什么想法吗?

【问题讨论】:

  • 由于您没有谈论技术或算法,因此绝对最好的方法是打开您的网络浏览器,打开所需的网页,复制相关文本并将其粘贴到您的数据库中。

标签: javascript ruby web-scraping


【解决方案1】:

这个问题太宽泛,无法给出具体答案,但您可以将此问题分为三个问题:

  1. 一种获取网络资源的方法。例如libcurl,或者任何能说话的东西HTTP

  2. DOM 解析器。例如,Python 有 xml.dom.minidom

  3. 一种用于遍历DOM 树并提取文本的算法。无论是扫描带有class=article 的元素,还是带有超过1024 个字符的<div>s 等,完全取决于您。您需要进行实验才能做到这一点。

我建议针对这些问题分别提出不同的问题。当然,在对每个进行研究之后。 :)

【讨论】:

    【解决方案2】:

    这是一个让您开始使用 Ruby 的想法。刚刚测试了下面的代码,它对我来说工作正常。看看它可能对你有帮助。

    require 'open-uri'    
    require 'cgi'    
    require 'nokogiri'
    
    $url='http://www.stackoverflow.com'
    
    $txt_file = open($url)   
    
    $raw_contents = $txt_file.read
    
    $html = Nokogiri::HTML(CGI.unescapeHTML($raw_contents)).content
    #strip the web page fetched out of all hmtl tags and encoded chars
    
    $txt_file = File.new('c:\ruby193\bin\web-content\stack.txt', "w")
    #stack.txt now contains a stripped, pure txt file which you can manipulate further
    
    $txt_file.write($html)    
    $txt_file.close
    
    puts 'Here is the stripped text of your webpage\n'+$html
    

    【讨论】:

      猜你喜欢
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      相关资源
      最近更新 更多