2012-02-09 51 views
6

Evernote's Web Clipper pluginAnnouncify plugin如何獲取頁面的相關文章/帖子/內容部分?下面是Evernote的插件的截圖:只獲取網站的相關部分

enter image description here

無論哪個網站您訪問的是其他佈局懷斯兄弟完全不同,這些總是能夠讓你的文章/後/內容頁面的一部分。

每個網站都有不同的佈局,一些有側邊欄,有的沒有,不同的標籤,主/條/內容的一部分,HTML5其他的一些使用<article><section>使用<h1> > <p>,一些使用<h2> > <p>和別人不使用在所有。所以有不同的標籤組合和網站佈局。

任何人都可以提出一個解決方案獲得文章/帖子/內容請通過Javascript或PHP?

+0

這很聰明... – Jivings 2012-02-09 08:53:37

+0

也許它尋找頁面上最大的'div'或其他元素? – Jivings 2012-02-09 08:54:50

+0

@Jivings:最大的div將包含整個網站,我們希望能夠找到包含主要/文章部分的元素:) – Dev555 2012-02-09 08:57:58

回答

7

你可以做一個簡單的DOM解析和搜索<div> S和<p>小號含有更多的文字(文字!不是HTML代碼!)。但是,無論您選擇哪種智能方法來確定內容的位置,您應該從DOM解析開始,讓我們來看看解析PHP庫的DOM。

無論如何,你可以從這個開始:

http://w-shadow.com/blog/2008/01/25/extracting-the-main-content-from-a-webpage/

看起來相當不錯,如果你想寫你自己的東西給人的技術說明。

+0

這是一個可怕的解決方案。但可能是最好的。 – Jivings 2012-02-09 09:28:10

+1

@Jivings爲什麼可怕? – 2012-02-09 09:30:58

+0

因爲DOM解析讓我不寒而慄。但是你的鏈接似乎很有趣。 – Jivings 2012-02-09 09:32:58

0

大多數博客引擎都會給該div一個「內容」標識。

  • 在javascript中,你會只是做$( '#內容')
  • 在PHP中,你會做的DOMDocument ::的getElementById( '內容')。