嘗試寫個爬蟲(1)

2021-06-18 03:31:19 字數 935 閱讀 2093

背景知識

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...