爬蟲的定義
什麼是爬蟲?
爬蟲(又被稱爲網頁蜘蛛,網絡機器人)就是模擬客戶端發送網絡請求,接收請求響應,一種按照必定的規則,自動地抓取互聯網信息的程序。
原則上,只要是瀏覽器(客戶端)能作的事情,爬蟲都可以作。
爬蟲的分類和爬蟲的流程
爬蟲的分類
根據被爬網站的數量不一樣,咱們把爬蟲分爲
- 通用爬蟲:一般指搜索引擎的爬蟲
- 聚焦爬蟲:針對特定網站的爬蟲
聚焦爬蟲的工做流程以下
urllist --> 響應的內容 --> 提取數據 -->入庫
robots協議
robots協議
網站經過robots協議告訴搜索引擎哪些頁面能夠被抓取,哪些頁面不能被抓取,但它僅僅是道德層面上的約束
HTTPS和HTTP的複習
http和https的概念
HTTP
HTTPS
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類型