本人是個初學者,接觸過存取資料的方式只有通過資料庫、xml、文本這些進行簡單的存取。如果我自己開一個門戶類型網站,那麼我每天可能必須要更新我網站的新聞或者其他每天都在變的內容。每天繁瑣又沒有技術含量的操作,只是為了採集一些資料插入到資料庫裡,多麻煩。有人會讓我用機器人採集資料,我覺得這樣還是有些麻煩。於是今天突發奇想,在說重點之前,我先舉個例子說明一下。正常做一個項目都會用到資料庫,就 拿mssql來講,每操作的時候可以通過簡單的sql語句拿到資料,例如:select * from table。我的設想就是自己定製一種文法,可以採集本地機器或網路上的任何資源。
說一下流程:
1.假設百度資料庫伺服器存著網站的資料
2.百度的程式員寫了一套程式漂亮的展示出了資料
3.使用者訪問百度的網域名稱可以查看到很漂亮的頁面,取得自己想看的資訊。
就以上3點,如果我們想串連百度資料庫拿到資料供我們自己用,大家想想可能嗎?但有一點,我們可以輕鬆拿到百度給客戶展示後的資料,也就是網頁原始碼,我們可以從原始碼進行分析,最終把網頁原始碼的資料處理成未經處理資料。OK,我們拿到了,這樣想怎麼用就怎麼用了吧?
我的目的就是要自己做一個架構,讓各位使用簡單的方式取到某網站頁面未經處理資料,架構只起中介層分析處理作用。怎麼拿資料使用者是看不到的。
我想我這個想法網路上還沒有成熟的作品吧?
此架構最終目的是把互連網絡變成一個超大型資料庫,想取什麼取什麼,嘿嘿,想法不錯吧!
為了讓大家更好理解我的想法,我做了個簡單的例子。可以參考一下,或者有更好的實現思路感謝各位提醒了。
這個例子暫時能夠實現的功能是通過我自訂的語句來擷取某個網頁的原始碼、擷取某個頁面的超連結。
select link.url,link.body from [url:http://www.cnblogs.com/;encoding=utf-8]
文法簡要說明
select * from [url:http://網址;encoding=頁面編碼] 可以獲得一個網站的原始碼
select link.* from [url:http://網址;encoding=頁面編碼] 擷取一個網頁的所有超連結
頁面編碼可不填寫,預設頁面編碼為gb2312
可顯示的超連結屬性:
link.url,link.title,link.id,link.name,link.target,link.body
目前為了測試,暫時只有兩個簡單的文法。
以後的目標將增加各種查詢條件,讓資料查詢更靈活。
原始碼:http://files.cnblogs.com/dirain/SearchData.rar
我寫的代碼可能是最笨的方式,希望各位能留言幫忙提供實現思路,謝謝。