爬蟲課程一(爬蟲的概念與HTTP的複習)
目前在學習爬蟲的課程
以下小坐總結:
第一天主要看了以寫爬蟲的原理以及爬蟲資料的抓取
一
1.1:為什麼學習爬蟲
最主要的是在目前看來,爬蟲工程師屬於緊缺型人才,並且薪資待遇普遍較高
1,學習爬蟲,可以私人定製一個搜尋引擎。
2,大資料時代,要進行資料分析,首先要有資料來源
3,對於很多SEO從業者來說,從而可以更好的進行搜尋引擎優化。
1.2爬蟲的概念
什麼是網路爬蟲?
網路爬蟲(又被稱為網頁蜘蛛,網路機器人)爬蟲就是模擬客戶端傳送網路請求,
接受請求對應的響應,一種按照一定規則,自動抓取網際網路資訊的程式。
只要是客戶端(主要指瀏覽器)能做的事情,原則上,爬蟲都能夠做。
換言之,只要人能能夠正常訪問的網頁,爬蟲在具備同等資源的情況下就一定能抓取到。
1.3 爬蟲的用途
主要用途:資料採集
其他用途:各種搶購,12306搶票。投票刷票,簡訊轟炸,網路攻擊,web漏洞掃描器
1.4 爬蟲的分類
通用爬蟲:通常指搜尋引擎和大型服務提供商的爬蟲
聚焦爬蟲:針對特定網站的爬蟲,定向的獲取明發面數據的爬蟲
累計式爬蟲:從開始到結束,不斷的爬取,過程中會進行去重操作。
增量式爬蟲:已下載網頁採取增量式更新和只爬取新產生的或者已經發生變化網頁的爬蟲
DEEP WEB爬蟲: 不能通關過靜態連結獲取的,隱藏在搜尋表單後的,只有使用者提交一些
關鍵詞才能獲得的web頁面(通常值:有些只能是會員,或者登陸之後的,普通爬蟲只是冰山一角,深度就深到海底)。
1.5 爬蟲的用途:
金融金融新聞/資料制定投資策略,進行量化交易
旅遊各類資訊優化出行策略
電商商品資訊 比價系統
遊戲遊戲論壇調整遊戲運營
銀行個人交易資訊徵信系統/貸款評級
招聘職位資訊崗位資訊
一/二: 通用爬蟲和聚焦爬蟲工作原理
2.1 通用搜索引擎的侷限性
通用搜索引擎所返回的網頁裡90%的內容無用。
中文搜尋引擎自然語言檢索理解困難,舉個例
資訊佔有量和覆蓋率存在侷限。
搜尋引擎最主要的還是以關鍵字搜尋為主,對於圖片、資料庫、音訊、視訊多媒體的內容通用搜索引擎無能為力。
搜尋引擎的社群化和個性化不好,大多數搜尋引擎沒有考慮人的地域,性別,年齡的差別
搜尋引擎抓取動態網頁效果不好
一/三.ROBOTS協議
什麼是Robots協議:
Robots協議(也稱為爬蟲協議、機器人協議等)的全稱是“網路爬蟲排除標準”(Robots Exclusion Protocol),網站通過Robots協議告訴搜尋引擎哪些頁面可以抓取,哪些頁面不能抓取。
Robots協議是一個道德層面的約定,爬蟲作者遵不遵守完全看自己意願。
存在位置:
robots.txt檔案應該放置在網站根目錄下
例如:
https://www.taobao.com/robots.txt
二、HTTP和HTTPS複習內容
1、HTTP和HTTPS
2、HTTP的請求過程
3、HTTP的請求報文格式
4、HTTP的常見請求頭
5、GET和POS
6、響應狀態碼
2.2 瀏覽器傳送http請求的過程
url 的格式
形式:scheme://host[:port#]/path/…/[?query-string][#anchor]
scheme:協議(例如:http, https, ftp)
host:伺服器的IP地址或者域名
port:伺服器的埠(如果是走協議預設埠,80 or 443)
path:訪問資源的路徑http://www.cnblogs.com/be-saber/p/4734951.html
query-string:引數,傳送給http伺服器的資料,引數使用&隔開
anchor:錨(跳轉到網頁的指定錨點位置)
https://detail.tmall.com/item.htm?id=545181862652
為什麼要進行編碼
通常如果一樣東西需要編碼,說明這樣東西並不適合傳輸。原因多種多樣,如Size過大,包含隱私資料,對於Url來說,之所以要進行編碼,是因為Url中有些字元會引起歧義。Url的編碼格式採用的是ASCII碼,而不是Unicode,這也就是說你不能在Url中包含任何非ASCII字元,例如中文。
Url編碼與解碼
瀏覽器從表單中獲取所有的name和其中的值 ,將它們以name/value引數編碼(移去那些不能傳送的字元, 將資料排行等等)作為URL的一部分或者分離地發給伺服器。
Url編碼的原則:
使用安全的字元(沒有特殊用途或者特殊意義的可列印字元)去表示那些不安全的字元。
重要 重要 重要
瀏覽器訪問一個網站,在的獲取原始碼之後會根據原始碼上的連結載入圖片,js,css檔案等,我們稱之為渲染,而爬蟲只會請求原始碼
2.3HTTP請求報文的格式
Http請求報文分為三部分:
1.請求行
2.請求頭請求頭中包含很多資訊,通常會告知伺服器一些資訊
3.請求體post請求資料存放位置
2.4HTTP常見的請求頭
1.Host (主機和埠號)
2. Connection (連結型別)
3. Upgrade-Insecure-Requests (升級為HTTPS請求)
4. User-Agent (使用者代理)
伺服器能夠識別客戶使用的作業系統及版本、CPU 型別、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器外掛等
5. Accept (傳輸檔案型別)
6. Referer
頁面跳轉處,從何處來到當前頁面,可用於防爬和防盜鏈
7. Accept-Encoding
覽器支援的編碼型別,主要的編碼格式就是壓縮格式
gzipcompressdeflate
8. Cookie
用於進行狀態保持,通常也可用於識別使用者身份
9. x-requested-with :
XMLHttpRequest 是Ajax 非同步請求