1. 程式人生 > >每天一點爬蟲(一)

每天一點爬蟲(一)

get請求 red 網站 gpo 額外 正常 主機 mysql 會有

  開始爬蟲之旅。

認識爬蟲

  網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,spider),是一種按照一定的規則,自動地抓取互聯網信息的程序或者腳本。通俗的講就是通過程序自動去獲取web頁面上自己想要的數據。

  主要就是模擬瀏覽器打開網頁,獲取網頁中我們想要的那部分數據。

  簡單的說一下瀏覽器打開網頁的過程:在瀏覽器中輸入地址後,經過DNS服務器找到服務器主機,向服務器發送一個請求,服務器經過解析後發送給用戶瀏覽器結果,包括html,js,css等文件內容,瀏覽器解析出來最後呈現給用戶,最後就是用戶看到的瀏覽器顯示部分了。用戶看到的瀏覽器的結果就是由HTML代碼構成的,我們爬蟲就是為了獲取這些內容,通過分析和過濾html代碼,從中獲取我們想要資源。

  爬蟲的基本流程主要分為4步:

  第一步、發起請求:通過HTTP庫向目標站點發起請求,也就是發送一個Request,請求可以包含額外的header等信息,等待服務器響應。

  第二步、獲取響應內容:如果服務器能正常響應,會得到一個Response,Response的內容便是所要獲取的頁面內容,類型可能是HTML,Json字符串,二進制數據(圖片或者視頻)等類型。

  第三步、解析內容:得到的內容可能是HTML,可以用正則表達式,頁面解析庫進行解析,可能是Json,可以直接轉換為Json對象解析,可能是二進制數據,可以做保存或者進一步的處理。

  第四步、保存數據:保存形式多樣,可以存為文本,也可以保存到數據庫,或者保存特定格式的文件。

  在發送請求階段,請求方式主要有GET/POST兩種類型,還有一些其他方式但是不常用。

  請求頭包含User-Agent,Host,Cookies等信息,請求體是攜帶的數據,如提交表單數據時候的表單數據。

  服務器端會根據請求信息給出相應的響應,包括狀態碼,響應頭和響應體,響應體裏面就是我們請求的資源內容。

  從理論上來說,我們請求到什麽資源就等於爬取什麽樣的資源,但是由於很多網站中的數據都是通過js,ajax動態加載的,所以直接通過get請求獲取的頁面和瀏覽器顯示的不同。後面的隨著學習的深入我們會有方法解決js渲染等問題。

  解析爬下來的數據的方式:

  1. 直接處理;
  2. Json解析;
  3. 正則表達式處理;
  4. BeautifulSoup解析處理;
  5. PyQuery解析處理;
  6. XPath解析處理。

  存儲數據的方式:

  1. 文本:純文本,Json,Xml等;
  2. 關系型數據庫:如mysql,oracle,sql server等結構化數據庫;
  3. 非關系型數據庫:MongoDB,Redis等key-value形式存儲。

  了解了爬蟲是什麽,接下來我們就開始爬蟲之旅了。

每天一點爬蟲(一)