我正在编写一个特殊的类似爬虫的应用程序,需要检索各种页面的主要内容。只是为了澄清:我需要页面的真正“肉”(假设有一个,自然)
我尝试了各种方法:
然而,这些方法并不总是有效,而且我注意到Facebook做了这么好的工作(当你想要附加链接时,他们会向你显示他们在链接页面上找到的内容)。
那么 - 对于我看过的方法,你有什么提示吗?
谢谢!
答案 0 :(得分:1)
网页确实没有标准的方式来标记“这是肉”。大多数网页甚至都不想这样做,因为这会让他们更容易窃取核心业务。所以你真的必须编写一个框架,它可以使用每页规则来定位你想要的内容。
答案 1 :(得分:0)
嗯,你的问题仍然有点模糊。在大多数情况下,“爬虫”只是以文本格式在网络上查找数据,并将其处理以进行存储,解析等。“Facebook屏幕截图”完全不同于野兽。
如果您只是在寻找基于Web的抓取工具,可以使用几个库来轻松遍历网页的DOM,并且可以抓取您正在寻找的内容。
如果您使用的是Python,请尝试Beautiful Soup 如果您使用的是Ruby,请尝试hpricot
如果您想要在以后处理网页的全部内容,只需获取并存储“html”标记下的所有内容。
这是一个BeautifulSoup示例,用于获取页面上的所有链接:
require 'hpricot'
require 'open-uri'
doc = Hpricot(open("http://www.stackoverflow.com"))
(doc/"a").each do |link|
puts link.attributes['href']
end
编辑:如果您要主要抓取来自相同网站的内容(例如Reddit的评论部分,来自StackOverflow的问题,Digg链接等),您可以对其格式进行硬编码,以便您的抓取工具可以说,“好吧,我在使用Reddit,使用'thing'类来获取所有内容。你也可以给它一个默认的东西列表,比如class / id为“main”,“content”,“center”的div “等等。