2013-05-15 47 views
0

我創建的網站需要能夠使用其網址取消網站內容部分(例如發佈博客內容)。用戶正在填寫URL輸入和腳本碎片,並給出URL的代碼並保存其內容部分。廢除頁面內容的API

有沒有這種東西的API服務?或者只是一個圖書館使用?我知道有很多庫使用它的URL來獲取網站HTML內容,但我需要一些「智能」來尋找內容部分,不包括頁面其他部分的源代碼。

示例用法可能是http://kippt.com - 它們有這樣的機制。

回答

2

是的,有叫boilerpipe紅寶石寶石/ Java庫,做到這一點。

+0

是的,這就是我一直在尋找!但最新版本是在2年前發佈的。沒有更新的東西嗎? – mbajur

+0

https://rubygems.org/gems/boilerpipe-ruby是一個純粹的鍋爐實施 –

0

看一看HTML敏捷性包 - 它可以幫助你:http://htmlagilitypack.codeplex.com/

+0

謝謝,但它不是我要找的東西。我需要更聰明的東西,它會自動提取網站中最重要的部分(即,如果你將取消這個問題的URL,圖書館將返回我的問題的內容)。通過「智能」我的意思是我不需要手動提供一個html標籤名稱/類/ id來查詢。 – mbajur

+0

啊...好的。我會留意這個,因爲那會很有趣。你的意思就像當你添加一個Facebook郵件鏈接時發生的事情 - 你得到一個快速總結和一個圖像? –

+0

是的,正是這樣:) – mbajur

1

對於webscaping,你需要檢查接下來的寶石:

機械化

的機械化庫用於與 網站自動化互動。機械化自動存儲併發送cookies,遵循 重定向,並且可以跟隨鏈接並提交表單。填寫並提交表單字段可以是 。機械化還會跟蹤您作爲歷史訪問的網站。

這裏是谷歌搜索的hello world爲例&返回結果:

a = Mechanize.new { |agent| 
    agent.user_agent_alias = 'Mac Safari' 
} 

a.get('http://google.com/') do |page| 
    search_result = page.form_with(:name => 'f') do |search| 
    search.q = 'Hello world' 
    end.submit 

    search_result.links.each do |link| 
    puts link.text 
    end 
end 

Nokogiri - 它是HTML/XML解析,使用它你可以搜索通過CSS選擇器的html頁面如果你正在尋找廢除HTML,這是你需要使用的庫。這裏是相同的谷歌搜索示例

doc = Nokogiri::HTML(open('http://www.google.com/search?q=sparklemotion' 
# Search for nodes by css 
doc.css('h3.r a').each do |link| 
puts link.content 
end 

欲瞭解更多信息,請參閱

+0

謝謝,但它不是我正在尋找的。請看我對** @ spike **問題的第一條評論以獲得解釋。 – mbajur

+0

我同意。機械化對於通過HTTP與網站進行交互是很好的,但它不能幫助解釋html的哪些部分是樣板代碼(即鏈接,填充div,廣告等)以及實際上是哪些內容。 – eremzeit

0

也許這來得有點晚,但也許是因爲其他人..

查看:http://www.kimonolabs.com/ 他們爲你做了所有繁重的工作。 :)