一:互聯網簡介html
互聯網是由各類計算機設備,經過鏈接介質相互鏈接而成的,目的是在不一樣的計算機之間傳輸數據,而且在互聯網上有大量的數據是免費的。互聯網的目的就是微辣方便彼此之間的數據共享,沒有互聯網,只能用U盤拷貝了。而爬蟲就是用於從互聯網中獲取有價值的數據,從本質上來看,爬蟲是一種應用程序,屬於客戶端的程序。web
二:爬蟲原理 正則表達式
爬蟲是一種應用程序,用於從互聯網中獲取有價值的數據,從本質上來看,屬於client客戶端程序。咱們所謂的上網即是由用戶端計算機發送請求給目標計算機,將目標計算機的數據下載到本地的過程。chrome
此時用戶獲取網絡數據的方式爲:數據庫
瀏覽器提交請求 ----- 下載網頁代碼 ----- 解析/渲染成頁面json
而使用爬蟲程序須要作的事情即是:瀏覽器
模擬瀏覽器發送請求 ----- 下載網頁代碼 ----- 只提取有用的數據 ----- 存放於數據庫或者文件中服務器
爬蟲的核心即是隻提取網頁代碼中對咱們有用的數據,最終保存獲得有價值的數據。cookie
三:爬蟲的基本流程網絡
#一、發送請求 發送請求以前還有一個分析請求:分析web頁面獲得發送請求必備數據。 使用http庫向目標站點發起請求,即發送一個Request Request包含:請求頭、請求體 #二、獲取響應內容 若是服務器能正常響應,則會獲得一個Response Resonse包含:html代碼,json,圖片、視頻等 #三、解析內容 解析html數據:正則表達式、第三方解析庫如:Beautifulsoup,pyquery等 解析json數據:json模塊 解析二進制數據:以二進制模式寫進文件 #四、保存數據 保存在數據庫、文件等方式。
3.1 HTTP請求分析
首先要明確的是:爬蟲的核心原理就是模擬瀏覽器發送HTTP協議來偶去服務器上的數據,那麼要想服務器接受你的請求,則必須將本身的請求假裝的足夠像,這就須要HTTP請求分析這一過程。其次,HTTP協議是基於請求響應模型的,客戶端發送請求到服務器,服務器接受請求,處理後返回響應數據,須要關注的重點在於請求數據,只有服務器認爲合格合法的請求才會獲得服務器的響應。
利用Chrome開發者工具來分析請求
Chrome瀏覽器提供強大的開發者工具,咱們能夠利用它來查看瀏覽器與服務器的整個通信過程。
打開chrome的設置頁面搜索cookie就能夠找到清空按鈕。
請求流程地址分析
1. 請求地址
瀏覽器發送的請求url地址
2. 請求方法
get中文須要url編碼,參數跟在地址後面
post參數放在body中
3. 請求頭
cookie:須要登陸成功才能訪問的頁面就須要傳遞cookie,不然不須要cookie
user-agent:用戶代理,驗證客戶端類型
referer: 引用頁面,判斷是從哪一個頁面點擊過來的
4. 請求體
只在post請求時須要關注,一般post請求參數都放在請求體中,例如登陸時的用用戶名和密碼
5. 響應頭
location:重定向的目標地址,僅在狀態碼爲3xx的時候出現,須要考慮重定向時的方法、參數等,瀏覽器會自動重定向,request模塊也會有。
set-cookie:服務器返回的cookie信息,在訪問一些隱私頁面是須要帶上cookie的
6. 響應體
服務器返回的數據,可能如下幾種類型:
HTML格式的靜態頁面,須要解析獲取須要的數據
json格式的結構化數據,直接就是純粹的數據
二進制數據(圖片視頻等),經過文件操做直接寫入文件
四:總結(價值)
爬蟲就是想網站發送請求,獲取資源後分析而且提取有用的數據的應用程序。互聯網中最寶貴的就是數據了,例如淘寶的商品數據,鏈家的房源信息,拉鉤的招聘信息等等,這些數據就像一座礦山,爬蟲就像是挖礦的工具,掌握了爬蟲技術,你就成了礦山老闆,各網站都在爲你免費提供數據。