Python學習——爬蟲(一)

步驟

①發起請求
通過HTTP庫向目標站點發起請求,即發送一個request,請求可以包含額外的headers等信息,等待服務器相應。
②獲取響應內容
如果服務器能正常響應,會得到一個Response,Response的內容便是所要獲取的頁面內容,類型可能有HTML,Json字符串,二進制數據(如圖片視頻)等類型。
③解析內容
得到的內容可能是HTML,可以用正則表達式、網頁解析庫進行解析。可能是Json,可以直接轉爲Json對象解析,可能是二進制數據,可以做保存或者進一步的處理。
④保存數據
保存形式多樣,可以存爲文本,也可以保存至數據庫,或者保存特定格式的文件。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

爬蟲抓取數據:

一、網頁文本(HTML文檔,json格式文本)
在這裏插入圖片描述
二、圖片(獲取到的是二進制文件,保存爲圖片格式)
在所需抓取的網頁上打開源碼,
得到所需抓取文件內容鏈接,使用requests.get方法獲取響應體二進制格式
在這裏插入圖片描述
在這裏插入圖片描述
在寫入的文件夾內可以看到獲取 下來的圖片。
三、視頻(二進制文件,保存爲視頻格式)
四、其他(可以請求到的都可以獲取)

解析方式

直接處理
返回簡單的字符串,取出空格等,適用於構造內容簡單的情況
Json解析
返回Json格式的字符串,把Json字符串解析轉化成Json對象,然後提取有效數據。
①選擇目標網頁,F12查看源碼,選擇XHR
在這裏插入圖片描述
②查找preview與response響應體中的內容
在這裏插入圖片描述
③解析字符串得到結果。
正則表達式提取方式
規則字符串,把html中的代碼文本提取出。
BeautifulSoup

Pyquery

XPath

解決JavaScript渲染問題

分析Ajax請求
Selenium/WebDriver
在這裏插入圖片描述
Splash
PyV8
Ghost.py

保存數據

一、純文本,Json、Xml
二、關係型數據庫(如MySQL、Oracle、SQL Server等具有結構化表結構形式存儲。)
三、非關係型數據庫(如MongoDB、Redis等Key-Value形式存儲。)
四、二進制文件(如圖片、視頻、音頻等等直接保存成特定格式即可。)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章