中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python爬蟲入門的基本原理是什么

發布時間:2020-10-29 09:23:18 來源:億速云 閱讀:170 作者:小新 欄目:編程語言

小編給大家分享一下Python爬蟲入門的基本原理是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

爬蟲簡介

網絡爬蟲(Web crawler),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本,它們被廣泛用于互聯網搜索引擎或其他類似網站,可以自動采集所有其能夠訪問到的頁面內容,以獲取或更新這些網站的內容和檢索方式。從功能上來講,爬蟲一般分為數據采集,處理,儲存三個部分。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析算法過濾與主題無關的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,并重復上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,并建立索引,以便之后的查詢和檢索;對于聚焦爬蟲來說,這一過程所得到的分析結果還可能對以后的抓取過程給出反饋和指導。

爬蟲原理

Web網絡爬蟲系統的功能是下載網頁數據,為搜索引擎系統提供數據來源。很多大型的網絡搜索引擎系統都被稱為基于 Web數據采集的搜索引擎系統,比如 Google、Baidu。由此可見Web 網絡爬蟲系統在搜索引擎中的重要性。網頁中除了包含供用戶閱讀的文字信息外,還包含一些超鏈接信息。Web網絡爬蟲系統正是通過網頁中的超連接信息不斷獲得網絡上的其它網頁。正是因為這種采集過程像一個爬蟲或者蜘蛛在網絡上漫游,所以它才被稱為網絡爬蟲系統或者網絡蜘蛛系統,在英文中稱為Spider或者Crawler。

Python爬蟲入門的基本原理是什么

爬蟲基本流程

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

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

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

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

Request和Response

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

Response:服務器收到瀏覽器發送的消息后,能夠根據瀏覽器發送消息的內容,做相應處理,然后把消息回傳給瀏覽器。這個過程叫做HTTP Response。瀏覽器收到服務器的Response信息后,會對信息進行相應處理,然后展示。

Request詳解

請求方式:主要有GET、POST兩種類型,另外還有HEAD、PUT、DELETE、OPTIONS等。

請求URL:URL全稱統一資源定位符,如一個網頁文檔、一張圖片、一個視頻等都可以用URL唯一來確定。

請求頭:包含請求時的頭部信息,如User-Agent、Host、Cookies等信息。

請求體:請求時額外攜帶的數據如表單提交時的表單數據。

Response詳解

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

響應頭:如內容類型、內容長度、服務器信息、設置Cookie等等。

響應體:最主要的部分,包含了請求資源的內容,如網頁HTML、圖片二進制數據等。

能抓取哪些數據

網頁文本:如HTML文檔、Json格式文本等。

圖片:獲取到的是二進制文件,保存為圖片格式。

視頻:同為二進制文件,保存為視頻格式即可。

And so on:只要是能請求到的,都能獲取。

解析方式

直接處理

Json解析

正則表達式

BeautifulSoup

PyQuery

XPath

抓取中出現的問題

問:為什么我抓到的和瀏覽器看到的不一樣?

答:網頁通過瀏覽器的解析,加載CSS與JS等文件對網頁進行解析渲染,達到我們看到絢麗的網頁,而我們抓到的文件只是一些代碼,css文件無法調用,使得樣式不能表現出來,那么網頁就會出現錯位等等問題。

問:怎樣解決JavaScript渲染的問題?

答:分析Ajax請求、Selenium/WebDriver、Splash、PyV8、Ghost.py等庫

保存數據

文本:純文本、Json、Xml等。

關系型數據庫:如MySQL、Oracle、SQL Server等具有結構化表結構形式存儲。

非關系型數據庫:如MongoDBRedis等Key-Value形式存儲。

二進制文件:如圖片、視頻、音頻等等直接保存成特定格式即可。

以上是Python爬蟲入門的基本原理是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新余市| 尤溪县| 财经| 三亚市| 江口县| 眉山市| 大姚县| 呈贡县| 安远县| 和田县| 金门县| 聂拉木县| 铅山县| 宣化县| 西华县| 出国| 兰西县| 兴安县| 永靖县| 鄂尔多斯市| 留坝县| 互助| 洪江市| 九龙坡区| 凤凰县| 荆门市| 丹江口市| 南充市| 常山县| 明水县| 海伦市| 晋中市| 汶川县| 清流县| 凉山| 江津市| 穆棱市| 青铜峡市| 普定县| 广灵县| 鄱阳县|