仲介交易 SEO診斷 淘寶客 雲主機 技術大廳
網站採集器:是一種可以快速收集和發佈網上資訊的程式,一般分為兩大功能:資訊收集和處理功能,資訊發佈功能。
作為一種可以快速增加網站內容的程式,採集器一直以來都受到廣大個人站長的重視。 我們一方面想盡方法阻止別人採集自己的網站,另一方面也想用採集器採集一下別人的網站來豐富自己網站的內容。 採集器是什麼時候產生的我們已經無從知曉了,目前國內各大文章管理系統都已經集成了採集和防採集功能,即便國內的某些大網站也或多或少的使用了資訊採集,可見人們對採集的熱衷,畢竟使用採集省時省力嘛。 現在的採集產品非常多,功能也是各有所長。 但長久以來不論是哪種採集器、不論開發者說的程式如何簡單易用,採集器程式對大多數普通使用者來說還是存在難以使用的情況。 那麼,下面我來說一下採集器的工作原理希望會給大家在使用採集器的過程中帶來説明。
其實採集器的基本工作原理和流程是很簡單的,簡單劃分的話就是:
獲取資料。
根據不同的採集器種類和開發語言的不同,獲取方式有些不同。 但他們都是通過訪問被採集網站來提取被採集網站的相應資訊。 採集程式通過讀取採集規則中的資訊來確定應該以什麼樣的方式來訪問被採集網站,被採集網站中哪些位址是有效的,哪些內容是該收集的,如何提取有用的資訊等等,這些都是由採集規則指定的。
我們以老牌的BFC採集器為例(免費版本的功能較多且發佈的內容中沒有廣告),採集規則中首先需要指定採集內容清單的位址,BFC中稱為「清單URL」,這個清單頁面中包含你要採集的內容連結,比如我們來採集一下BFC官方論壇的「 BFC採集器應用交流」這個板塊中的內容,連結位址是:HTTP://bbs.bfcstudio.com/thread.php?fid=9。
我們就可以把清單URL設置為這個位址,現在清單位址有了,但這個頁面我們只想截取其中某一區域中的內容進行採集,怎麼辦呢?這就需要設置「清單範圍」了,這裡需要用到「清單起始字串」和「清單結束字串」, 顧名思義清單起始字串就是你所需要的內容從頁面代碼的哪個地方開始,清單結束字串就是你所需要的內容到哪個地方結束。
這裡是所有採集程式最令大家不好理解的也是規則設置的難點,其實只要你肯認真查看清單頁面代碼的話,這是很容易做的。 只要大家記住下面的基本原則,你在製作規則時一定不會被起始字串和結束字串難倒:
起始字串標準:在頁面html代碼中,所需內容之前有且僅有一次出現(如多次出現,以第一次出現的位置為准)。
結束字串標準:在頁面html代碼中,起始字串之後有且僅有一次出現(如多次出現,以第一次出現的位置為准)。 記住這裡是起始字串之後。
起始字串和結束字串是成對出現的,採集器會截取他們之間的內容作為有效內容。 他們不一定是代碼中唯一存在的,但是每對之間必須是你需要的內容(採集論壇回貼很有用)。 多用Ctrl+F你會找到合適的標準。
關於起始字串和結束字串的另外一種解釋:
起始字串:
在採集到的代碼中處於有效文本資訊之前的一段字串,這段字串必須滿足以下條件:在有效資訊之前的內容中是唯一的。 (如不唯一則以第一次出現的位置為准)在有效資訊之前的內容中必須存在一個或以上的起始字串(程式將以該字串第一次出現的位置為准),否則內容將會提取失敗。
結束字串:
在採集到的代碼中處於有效文本資訊之後的一段字串,這段字串必須滿足以下條件:從 起始字串 開始到有效資訊結束的內容中不得包含該字串。 在有效資訊之後的內容中必須存在一個或以上的結束字串(程式將以該字串從起始字串開始第一次出現的位置為准),否則內容將會提取失敗。 有網友想到了一種更好的設置方式,可以使用DW等視覺化頁面設計工具進行關鍵字的提取,具體操作請看以下位址:HTTP://bbs.bfcstudio.com/read.php?tid=692
要想用好採集器,你就一定要搞清楚如何設置起始字串和結束字串,這是所有採集程式的基礎所在,要知道以現有電腦的能力是不可能自己就知道你需要的內容的,不止是軟體問題。
好了先不說其他的,現在設置好了起始和結束字串資訊,清單的有效範圍已經劃定了,採集程式會自動提取到該區域中存在的連結。
如果在這段區域中還存在你不需要的連結內容,你還可以使用更細緻的連結過濾功能,在BFC採集器中提供的是根據網址內容進行過濾,可以設定網址中必須包含的內容或者必須不包含的內容。 也就是BFC規則管理員中的URL包含和URL排除。
其他一些採集器中也基本都提供了類似的功能,靈活運用的話都可以達到相同的目的。
關於清單分頁:多數採集器都提供了比較完善的清單分頁設置功能。 對於這個功能,應用最廣泛的是有規則分頁類型,類似下面的分頁方式:
thread.php?fid=2&search=&page=1
thread.php?fid=2&search=&page=2
thread.php?fid=2&search=&page=3
thread.php?fid=2&search=&page=4
thread.php?fid=2&search=&page=5
如果遇到類似這種分頁,設置起來就簡單了,對於BFC採集器可以用批量指定的方法,並把url字串設置為thread.php?fid=2&search=&page= {page}。
{page}範圍設置為從1到5(有幾頁就填幾)。
{page}:是BFC採集器的分頁變數,可以在指定範圍內自動遞增或遞減。
另一種設置分頁的方法顯得比較笨一些但簡單,就是手動添加功能,選中這裡後你只要填好你需要採集的清單位址就可以了,每行一條,有時間的話隨便你填多少。
還有一種分頁設置,就是設定下一頁連結代碼的起始和結束代碼,程式會根據設定的連結資訊自動在當前頁中找到下一頁的連結,這種設置比較麻煩一些但效果確實相當不錯。
以上是三種設定資訊分頁的方法,至於採集程式如何去運作和區別我們就不必關心太多了,這三種方法的設置方式同樣適用于內容分頁的設置。
現在我們有了需要採集的地址清單,下面就是設置採集內容了。
內容提取設置:
在對方網站中,我們需要的一般就是文章標題和文章內容,採集過程中,採集器會把採集地址清單中的文章內容的HTML代碼下載到本地並根據規則中設定的相應資訊提取文章的相關內容。
先說標題的提取,採集器的資料處理模組會根據「標題起始字串」和「標題結束字串」截取當前文章代碼中的資訊作為標題。 這裡的「標題起始字串」和「標題結束字串」設置原則和前面講的清單範圍截取原則是相同的。
對於想直接用連結名稱作為標題的朋友,BFC採集器提供了一個簡單的設置標題規則的方法,直接選中自動提取內容標題選項就可以了,選中後就不需要再填寫標題起始字串和標題結束字串了。 如下圖所示:
(BFC採集器中可無需設置標題規則)
當然對於清單中連結名稱為空或圖片連結的情況,你還是需要設置標題起始字串和結束字串的。
再說正文提取:
和標題及清單範圍提取相同,設置好你的正文起始字串和結束字串就可以了。
這裡著重要說的是對正文內容的處理,我們知道剛採集回來的內容就是一段html代碼,裡面包含的內容我們並不清楚,也許會帶有惡意程式碼,或者影響視覺效果的標籤,如table、tr、td、tbody等。 所以如果要發佈到論壇裡,最好是使用UBB編碼進行發佈以確保論壇的安全和相容性(有可能你用的那個使用者不能發html貼,造成發貼失敗)。 所以基本上所有的採集器都提供了轉換代碼格式的功能。
那麼如果需要向CMS或其他不支援UBB代碼的系統中發佈內容該怎麼辦呢?很簡單,就用HTML發佈,不過之前最好在規則中設置過濾有可能引起版面混亂的標籤。 這在BFC採集器中是非常方便的:
選中你需要過濾的標籤就可以了。
再說正文分頁,這也沒什麼可說的了,和清單分頁是相同的設置方法,設置好分頁規則就可以了。
現在我們看一下如何處理正文或標題內容中我們不需要或者需要替換的內容,BFC採集器中是以各類元素的形式進行這類操作的,經常用到的是過濾元素和替換元素:
過濾元素:用來刪除你不需要的內容,作用範圍可以是標題也可以是正文內容。
替換元素:用來替換原內容為你自己設定的內容。 作用範圍可以是標題也可以是正文內容。
使用這兩種元素可以很好的對你採集到的內容進行處理。
關於詳細的過濾元素和替換元素的使用方法可以查看這裡:
HTTP://bbs.bfcstudio.com/read.php?tid=1159
HTTP://bbs.bfcstudio.com/read.php?tid=1160
除了以上兩種元素,BFC還提供了插入元素和引用元素。
插入元素可以把指定(動態或靜態內容)內容插入標題或正文的指定位置。
引用元素的作用是把引用元素指定的內容(可以是從採集內容中通過起始/結束字串動態截取的,也可以自行指定靜態內容)賦值給引用元素的引用目標欄位,作為發送資料包欄位的一部分,即作為某個表單欄位的值。 由於使用的靈活性很大,我們不再對它進行具體介紹。
更深入的資料處理:
假如這些處理功能還是無法滿足你的要求,你還需要進行更複雜的轉換,怎麼辦呢?
那就用擴展函數吧,擴展函數游離于BFC採集器之外,是可以自訂的,當然了,前提是你對javascript或vbscript相當的熟悉,你可以自行開發這兩種指令碼語言的函數代碼以適應自己的需求, 比如BFC採集器自帶的火星文和簡繁體轉換腳本,還有個UBB代碼轉換腳本供你替換程式的內置UBB腳本轉換,根據說明文檔和那些函數腳本你可以製作自己的擴展函數。
現在採集內容我們已經有了,那麼發佈到哪裡呢? BFC的發佈目標是由規則來指定的,每個規則只能針對某一個板塊進行發佈(當然了,你也可以在採集前動態指定),這是和其他採集器不同的地方,在規則資訊的第一頁設置目標論壇和目標板塊就可以了, 同時這裡還可以設置是否每次採集都彈出目標設定視窗(重新分配目標論壇和板塊)和只採集不發佈(只採集到本地而不發佈到網站,適用于喜歡本地流覽的朋友)功能。
現在採集內容部分我們已經講解完畢。
發佈資料
資料的發佈與資料獲取相比要簡單得多(除非你想自己做發佈外掛程式),只要設置好你的網站資訊就可以了,需要注意的是以下幾點:
[list=1]
網站位址,網站位址一定要按照程式的要求填寫。 不同程式有不同的要求,按照實際情況填寫就可以了。
登錄位址,這是很重要的,否則採集程式會無法登錄使用者,也就無法提交內容。
提交位址,這就不用提了,一定要設置好(一般外掛程式中都帶有預設資訊,用預設的一般不會有問題)。
使用者資訊,現在的採集程式都提供了多使用者發佈的功能,所以你的使用者清單一定要維護好,注意他們是否有發帖許可權或者各種類型帖子的許可權。
板塊資訊
再一點需要注意的就是你的使用者登錄資訊是否過期,大多數採集器會在採集時會自動登入使用者,還有一些是需要提供登錄後的Cookies資訊,如果登錄資訊過期,也會造成發佈失敗,所以最好定期維護登錄資訊, 至於多長時間維護一次則要看你登錄時選中的登錄過期時間了。
做到上面的幾點你的採集內容就可以正常發佈了。