背景知識
url uniform resource locator 也是平常所說的網頁位址。
url是標準的internet協議,由協議型別,主機名,資源路徑等組成。
格式為: protocol://hostname[:port]/path/[;parameters][?query]
protocal :是協議型別,最常用的是http協議。
port:埠號,及資源所採用協議的通訊埠,比如http協議預設的是80。
path:用於表示主機中資源的目錄資訊,通常用「/」隔開。
parameters:用於表示某些協議的特別引數,為可選項。
query:用於表示查詢的子串,例如在http中通常可採用此字串,構造乙個get請求,執行伺服器上的乙個動態網頁。注意,這是www互動式技術的基礎。
搜尋引擎的基礎工作是採集最全面的url資訊,並由此構建最全面的資源資訊庫。這個小爬蟲的目的就是設計乙個可用的url中http**資訊收集器,並儲存到mysql中。
搜尋引擎一般由資訊採集,資訊索引和使用者檢索三部分組成。
此間有兩個技術難點:
1.如何獲得全面的url資訊?如何高效去重?
2.html文字資訊的抽取。由於html是高度自由且非結構化的文字,如何對html解析,如何從網頁中挖取隱含和準確的資訊是非常困難的。(html5,regular expression)
資訊索引
資訊索引是把採集到的資料儲存起來,並按一定的規則建立索引。以提高檢索速度,提公升使用者體驗。(robin就是北大資訊管理專業)
索引通常儲存在大型資料庫中,也可以存放在自定義的檔案裡。
索引涉及分詞,排序,結構分析等技術,由於資料量較大,索引的建立與更新相對較慢。
使用者檢索
即使用者介面的部分,向搜尋引擎發出查詢命令,這裡的涉及頁面排序方法,各個搜尋引擎不盡相同。(關於搜尋引擎也可以參考吳軍博士的《數學之美》)
嘗試寫個爬蟲(2)
爬蟲的工作原理 主要技術 1.獲得url,解析出主機,埠以及資源路徑 2.呼叫dns解析程式,將url轉換成ip位址 4.迴圈獲得伺服器端的返回資訊,並儲存到本地。dns 網域名稱系統 用於網路資源的命名管理,將internet上的網域名稱與真實的ip位址進行一對一或一對多的對映,使用者可以通過輸入...
嘗試寫個爬蟲(3)
http 超文字傳輸協議 通常http用於傳輸文字資訊,當然也可以傳輸二進位制或者各種流式檔案。通訊原理如下 1.建立tcp會話連線,通常指一次socket連線 2.client端向server端傳送請求命令,即http請求頭 3.server端響應client端請求,生成http返回頭,以及返回的...
爬蟲初學,寫個簡單的爬蟲
首先構造一下請求頭,呼叫request模組傳送請求,def request data url headers try response requests.get url,headers headers if response.status code 200 return response.conte...