国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python 爬蟲的原理

瀏覽:2日期:2022-07-15 18:21:07

爬蟲就是請求網站并提取數據的自動化程序。其中請求,提取,自動化是爬蟲的關鍵!下面我們分析爬蟲的基本流程

爬蟲的基本流程

發起請求

通過HTTP庫向目標站點發起請求,也就是發送一個Request,請求可以包含額外的header等信息,等待服務器響應

獲取響應內容

如果服務器能正常響應,會得到一個Response,Response的內容便是所要獲取的頁面內容,類型可能是HTML,Json字符串,二進制數據(圖片或者視頻)等類型

解析內容

得到的內容可能是HTML,可以用正則表達式,頁面解析庫進行解析,可能是Json,可以直接轉換為Json對象解析,可能是二進制數據,可以做保存或者進一步的處理

保存數據

保存形式多樣,可以存為文本,也可以保存到數據庫,或者保存特定格式的文件

什么是Request,Response

瀏覽器發送消息給網址所在的服務器,這個過程就叫做HTPP Request

服務器收到瀏覽器發送的消息后,能夠根據瀏覽器發送消息的內容,做相應的處理,然后把消息回傳給瀏覽器,這個過程就是HTTP Response

瀏覽器收到服務器的Response信息后,會對信息進行相應的處理,然后展示

Request中包含什么?請求方式

主要有:GET/POST兩種類型常用,另外還有HEAD/PUT/DELETE/OPTIONSGET和POST的區別就是:請求的數據GET是在url中,POST則是存放在頭部

GET:向指定的資源發出“顯示”請求。使用GET方法應該只用在讀取數據,而不應當被用于產生“副作用”的操作中,例如在Web Application中。其中一個原因是GET可能會被網絡蜘蛛等隨意訪問

POST:向指定資源提交數據,請求服務器進行處理(例如提交表單或者上傳文件)。數據被包含在請求本文中。這個請求可能會創建新的資源或修改現有資源,或二者皆有。

HEAD:與GET方法一樣,都是向服務器發出指定資源的請求。只不過服務器將不傳回資源的本文部分。它的好處在于,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中“關于該資源的信息”(元信息或稱元數據)。

PUT:向指定資源位置上傳其最新內容。

OPTIONS:這個方法可使服務器傳回該資源所支持的所有HTTP請求方法。用’*’來代替資源名稱,向Web服務器發送OPTIONS請求,可以測試服務器功能是否正常運作。

DELETE:請求服務器刪除Request-URI所標識的資源。

請求URL

URL,即統一資源定位符,也就是我們說的網址,統一資源定位符是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它。

URL的格式由三個部分組成:

第一部分是協議(或稱為服務方式)。 第二部分是存有該資源的主機IP地址(有時也包括端口號)。 第三部分是主機資源的具體地址,如目錄和文件名等。

爬蟲爬取數據時必須要有一個目標的URL才可以獲取數據,因此,它是爬蟲獲取數據的基本依據。

請求頭

包含請求時的頭部信息,如User-Agent,Host,Cookies等信息,下圖是請求請求百度時,所有的請求頭部信息參數

Python 爬蟲的原理

請求體

請求是攜帶的數據,如提交表單數據時候的表單數據(POST)

Response中包含了什么

所有HTTP響應的第一行都是狀態行,依次是當前HTTP版本號,3位數字組成的狀態代碼,以及描述狀態的短語,彼此由空格分隔。

響應狀態

有多種響應狀態,如:200代表成功,301跳轉,404找不到頁面,502服務器錯誤

1xx消息——請求已被服務器接收,繼續處理 2xx成功——請求已成功被服務器接收、理解、并接受 3xx重定向——需要后續操作才能完成這一請求 4xx請求錯誤——請求含有詞法錯誤或者無法被執行 5xx服務器錯誤——服務器在處理某個正確請求時發生錯誤 常見代碼: 200 OK 請求成功 400 Bad Request 客戶端請求有語法錯誤,不能被服務器所理解 401 Unauthorized 請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用 403 Forbidden 服務器收到請求,但是拒絕提供服務 404 Not Found 請求資源不存在,eg:輸入了錯誤的URL 500 Internal Server Error 服務器發生不可預期的錯誤 503 Server Unavailable 服務器當前不能處理客戶端的請求,一段時間后可能恢復正常 301 目標永久性轉移 302 目標暫時性轉移

響應頭

如內容類型,類型的長度,服務器信息,設置Cookie,如下圖

Python 爬蟲的原理

響應體

最主要的部分,包含請求資源的內容,如網頁HTMl,圖片,二進制數據等

能爬取什么樣的數據

網頁文本:如HTML文檔,Json格式化文本等圖片:獲取到的是二進制文件,保存為圖片格式視頻:同樣是二進制文件其他:只要請求到的,都可以獲取

如何解析數據

直接處理 Json解析 正則表達式處理 BeautifulSoup解析處理 PyQuery解析處理 XPath解析處理

關于抓取的頁面數據和瀏覽器里看到的不一樣的問題

出現這種情況是因為,很多網站中的數據都是通過js,ajax動態加載的,所以直接通過get請求獲取的頁面和瀏覽器顯示的不同。

如何解決js渲染的問題?

分析ajax Selenium/webdriver Splash PyV8,Ghost.py

怎樣保存數據

文本:純文本,Json,Xml等

關系型數據庫:如mysql,oracle,sql server等結構化數據庫

非關系型數據庫:MongoDB,Redis等key-value形式存儲

以上就是Python 爬蟲的原理的詳細內容,更多關于Python爬蟲的原理的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日韩国产免费一区二区三区 | 亚洲精品综合一区二区三区 | 国产一级毛片视频在线! | 国产91丝袜美腿在线观看 | 成人亲子乱子伦视频 | 日本加勒比在线 | 福利视频专区 | 成人国产一区二区三区 | 亚洲精品无码专区在线播放 | 免费看孕妇毛片全部播放 | 99国产精品久久久久久久日本 | 国产一级毛片夜一级毛片 | 九九99在线视频 | 成人网18免费网站在线 | 99re热视频这里只精品 | 91久久精品一区二区三区 | 一区二区三区在线视频观看 | 国产精成人品 | 黄色美女网站免费看 | 手机看片1024精品国产 | 国产成人a在一区线观看高清 | 欧美视频在线一区二区三区 | 99热播| 免费一级片视频 | 日日狠狠久久偷偷四色综合免费 | 日本三级欧美三级人妇英文 | 日本精品视频一视频高清 | 日本亚洲视频 | 国模肉肉人体大尺度啪啪 | 亚洲va在线va天堂va四虎 | 亚洲久草视频 | 亚洲第一成年免费网站 | 北条麻妃在线一区二区 | 黄色一级片在线看 | 日本久久久久 | 国产深夜福利视频在线播放 | 鸥美性生交xxxxx久久久 | 久久成人a毛片免费观看网站 | 日韩一区二区视频在线观看 | 亚洲欧美日韩在线精品一区二区 | 娇小性色xxxxx中文 |