爬蟲入門

爬蟲的定義

什麼是爬蟲?

 

     爬蟲(又被稱爲網頁蜘蛛,網絡機器人)就是模擬客戶端發送網絡請求,接收請求響應,一種按照必定的規則,自動地抓取互聯網信息的程序。
    原則上,只要是瀏覽器(客戶端)能作的事情,爬蟲都可以作。

爬蟲的分類和爬蟲的流程

  爬蟲的分類

  根據被爬網站的數量不一樣,咱們把爬蟲分爲
  •  通用爬蟲:一般指搜索引擎的爬蟲
  •  聚焦爬蟲:針對特定網站的爬蟲
   聚焦爬蟲的工做流程以下
  
    urllist --> 響應的內容 --> 提取數據 -->入庫

 

robots協議

 robots協議
  網站經過robots協議告訴搜索引擎哪些頁面能夠被抓取,哪些頁面不能被抓取,但它僅僅是道德層面上的約束

HTTPS和HTTP的複習

  http和https的概念

  HTTP
  •  超文本傳輸協議
  •  默認端口號:80
   HTTPS
  •  HTTP+SSL(安全套接字層)
  •  默認端口號:443

 

  https比http更安全,但性能更低

 

瀏覽器發送http請求的過程

  當咱們在本地輸入www.baidu.com的時候,瀏覽器會先嚐試從本地的host文件中獲取到對應的ip地址,若是不能,會經過DNS服務器獲取www.baidu.com對應的ip。
下一步就是使用tcp協議,創建tcp鏈接。而後使用HTTP協議請求網頁的內容,收到服務器的迴應,獲得一串HTML形式的文本,瀏覽器把它渲染並顯示到屏幕上。
瀏覽器會自動請求js,css等內容,js會修改頁面內容。最後瀏覽器渲染出來的內容在elements中,其中包括css,js,圖片,url地址對應響應的內容等。
  可是在爬蟲中,爬蟲只會請求url地址,拿到url地址響應的內容
渲染出來的頁面和爬蟲請求的頁面不同

因此在爬蟲中,須要以url地址對應的響應來提取內容css

 

url的形式

  url的形式:scheme://host[:port#]/path/…/[?query-string][#anchor]
  •  scheme:協議
  • host:服務器的ip地址或者域名
  •  port:端口號
  •  path:請求資源的路徑
  •  query_string:參數,發送給http服務器的數據
  •  anchor:錨 (跳轉到網頁的指定的錨點位置)

 

http重點的 請求頭

  user-agent:告訴對方服務器是什麼客戶端正在請求資源,爬蟲中模擬瀏覽器很是重要的一個手段
 

 python2和python3中的字符串

  •  ascii 一個字節表示一個字符
  •  unicode 兩個字節表示一個字符
  •  utf-8 變長的編碼,能夠是1,2,3,4個字節

  python2

  •  字節類型,str類型,經過decode()轉爲unicode類型
  •  unicode類型:unicode,經過encode()轉爲str字節類型

  python3

  • str:unicode,經過encode()轉爲bytes類型
  • bytes:字節類型,經過decode()轉爲str類型
相關文章
相關標籤/搜索