爬蟲的定義 什麼是爬蟲? 爬蟲(又被稱為網頁蜘蛛,網路機器人)就是模擬客戶端發送網路請求,接收請求響應,一種按照一定的規則,自動地抓取互聯網信息的程式。 原則上,只要是瀏覽器(客戶端)能做的事情,爬蟲都能夠做。 爬蟲的分類和爬蟲的流程 爬蟲的分類 爬蟲的分類 根據被爬網站的數量不同,我們把爬蟲分為 ...
爬蟲的定義
什麼是爬蟲?
爬蟲(又被稱為網頁蜘蛛,網路機器人)就是模擬客戶端發送網路請求,接收請求響應,一種按照一定的規則,自動地抓取互聯網信息的程式。 原則上,只要是瀏覽器(客戶端)能做的事情,爬蟲都能夠做。
爬蟲的分類和爬蟲的流程
爬蟲的分類
根據被爬網站的數量不同,我們把爬蟲分為- 通用爬蟲:通常指搜索引擎的爬蟲
- 聚焦爬蟲:針對特定網站的爬蟲
robots協議
robots協議 網站通過robots協議告訴搜索引擎哪些頁面可以被抓取,哪些頁面不能被抓取,但它僅僅是道德層面上的約束 HTTPS和HTTP的複習
http和https的概念
HTTP- 超文本傳輸協議
- 預設埠號:80
- 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地址對應的響應來提取內容
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類型