1.你是否在夜深人靜的時候,想看一些會讓你更睡不著的卻苦於沒有資源?2.你是否在節假日出行高峰的時候,想快速搶購火車票成功?
3.你是否在網上購物的時候,想快速且精準的定位到口碑質量最好的商品?
通過編寫程式,模擬瀏覽器上網,然後讓其去網際網路上抓取資料的過程。
抓取網際網路上的資料,為我所用,有了大量的資料,就如同有了乙個資料銀行一樣,下一步做的就是如何將這些爬取的資料產品化,商業化使用http庫向目標站點發起請求,即傳送乙個requestrequest包含:請求頭、請求體等
request模組缺陷:不能執行js 和css **
解析html資料:正規表示式(re模組),第三方解析庫如beautifulsoup,pyquery等解析json資料:json模組
解析二進位制資料:以wb的方式寫入檔案
資料庫(mysql,mongdb、redis)檔案
request:使用者將自己的資訊通過瀏覽器(socket client)傳送給伺服器(socket server)response:伺服器接收請求,分析使用者發來的請求資訊,然後返回資料(返回的資料中可能包含其他鏈結,如:,js,css等)
ps:瀏覽器在接收response後,會解析其內容來顯示給使用者,而爬蟲程式在模擬瀏覽器傳送請求然後接收response後,是要提取其中的有用資料。
常見的請求方式:get / postuser-agent:請求頭中如果沒有user-agent客戶端配置,服務端可能將你當做乙個非法使用者host;cookies:cookie用來儲存登入資訊
注意:一般做爬蟲都會加上請求頭
請求頭需要注意的引數:
(1)referrer:訪問源至**來(一些大型**,會通過referrer 做防盜煉策略;所有爬蟲也要注意模擬)
(2)user-agent:訪問的瀏覽器(要加上否則會被當成爬蟲程式)
(3)cookie:請求頭注意攜帶
如果是get方式,請求體沒有內容(get請求的請求體放在 url後面引數中,直接能看到)如果是post方式,請求體是format data
ps:1、登入視窗,檔案上傳等,資訊都會被附加到請求體內
2、登入,輸入錯誤的使用者名稱密碼,然後提交,就可以看到post,正確登入後頁面通常會跳轉,無法捕捉到 post
200:代表成功301:代表跳轉
404:檔案不存在
403:無許可權訪問
502:伺服器錯誤
響應頭需要注意的引數:(1)set-cookie:bdsvrtm=0; path=/:可能有多個,是來告訴瀏覽器,把cookie儲存下來
(2)content-location:服務端響應頭中包含location返回瀏覽器之後,瀏覽器就會重新訪問另乙個頁面
jso資料如網頁html,
二進位制資料等
爬取--->解析--->儲存請求庫:requests,selenium(可以驅動瀏覽器解析渲染css和js,但有效能劣勢(有用沒用的網頁都會載入);)解析庫:正則,beautifulsoup,pyquery
儲存庫:檔案,mysql,mongodb,redis~~
python爬蟲之 入門基礎
可以參考我之前學習的時候 的一篇文章一次完整的http事務過程 超詳細 2.還需要了解一下http的請求方式 有興趣的同學可以去查一下http的八種請求方法,這裡呢主要說下get請求和post請求,這兩種在以後學習中會用到的比較多。get請求 get方法用於使用給定的uri從給定伺服器中檢索資訊,即...
Python爬蟲入門(2) 爬蟲基礎了解
爬蟲,即網路爬蟲,大家可以理解為在網路上爬行的一直蜘蛛,網際網路就比作一張大網,而爬蟲便是在這張網上爬來爬去的蜘蛛咯,如果它遇到資源,那麼它就會抓取下來。想抓取什麼?這個由你來控制它咯。比如它在抓取乙個網頁,在這個網中他發現了一條道路,其實就是指向網頁的超連結,那麼它就可以爬到另一張網上來獲取資料。...
Python爬蟲入門二之爬蟲基礎了解
靜覓 python爬蟲入門二之爬蟲基礎了解 爬蟲,即網路爬蟲,大家可以理解為在網路上爬行的一直蜘蛛,網際網路就比作一張大網,而爬蟲便是在這張網上爬來爬去的蜘蛛咯,如果它遇到資源,那麼它就會抓取下來。想抓取什麼?這個由你來控制它咯。比如它在抓取乙個網頁,在這個網中他發現了一條道路,其實就是指向網頁的超...