爬蟲實戰開發學習(一)

fly木槿年弧發表於2021-07-06

爬蟲實戰開發學習(一)

鴿子的自我修養 -Jerry Yu

呀嘞呀嘞?,一直都想學爬蟲,從上學期下定的決心,但一直考試周,壓縮考試耽誤(╬▔皿▔)╯,開始了開始了,不鴿了不鴿了(想起來就更新哦,儘量每週,兩到三更)

我要讓全世界知道我很低調!

​ —— Jerry Yu


學習爬蟲前的準備

掌握一些基本的常識啦

1.Http和Https的區別

2.什麼是URL,URN,URI

3.什麼是HTML,CSS,JavaScript

簡言之,

HTML(HyperText Markup Language):網頁的內容和結構

CSS(Cascading Style Sheets):網頁的樣式

JavaScript:網頁的行為,與使用者的互動

4.網頁點選F12進入開發者模式

自行百度瞭解掌握,什麼是以下的紅框框的內容

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

像是Cookie這樣的東西,要重點學習,會有大用處.?


一.選擇器

在這裡插入圖片描述

圖中可以看到,網頁的HTML原始碼中,基本內容都是通過id,class等物件進行巢狀組成的內容框架。那麼對於不同的位置,都設定了不同的id等名稱進行分開處理,我們想要定位到我們想要內容或者原始碼的位置,就要學會使用選擇和定位的函式。

CSS選擇器

1.在CSS中,我們使用CSS選擇器進行定位節點

<div id='hello'>

表示成 #hello

其中#開頭代表選擇id,其後緊跟id的名稱

2.如果是選擇class作為windows的節點

就可以使用

.windows

以點‘ . ’開頭代表選擇class,其後緊跟class的名稱

3.根據標籤名篩選

例如想要選擇二級標題,直接使用h2即可

4.CSS選擇器支援巢狀選擇

例如

#container.wrapper p

· 代表先選擇id為continer的節點

· 然後選中其內部的class為wrapper的節點

· 然後再進一步選中其內部的p節點

如果不加空格的話,代表並列關係

例如

div#container.wrapper p.next

· 代表先選擇id為container的div節點

· 然後選中其內部的class為wrapper的節點

· 再進一步選中其內部的class為text的p節點

5.CSS選擇器的其他語法規則

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

二.爬蟲的基本原理

爬蟲就是獲取網頁並提取和儲存資訊的自動化程式

爬蟲主要就是獲取網頁,即獲取網頁的原始碼

1.關鍵部分是:構造一個請求併傳送給伺服器,然後接收到相應後並將其解析出來

實現這種操作的庫有:urllib,requests

2.分析原始碼,提取資訊

構造正規表示式

比較簡單,但是可能容易出錯

網頁結果具有一定規則,所以可以根據網頁節點屬性,CSS選擇器或XPath來提取網頁資訊的庫

Beautiful Soup,pyquery,lxml

可以高效的提取節點的屬性,文字值等

3.儲存資訊

可以儲存為TXT或者JSON文字

也可以儲存到資料庫MySQL,MongDB

也可以儲存到遠端伺服器,藉助SFTP等進行操作

4.自動化程式

爬蟲代替人工來完成上述的爬取網頁的過程,可以進行各種異常處理,錯誤重試等操作,更加高效的執行

我們所抓取的資料格式多種多樣,包括文字,影像,視訊,音訊等,爬取後,儲存成對應的檔名

有時可能出現urllib或者requests得到的程式碼和瀏覽器並不同,現在越來越多的網頁採用Ajax,前端模組化工具進行構建,整個網頁利用JavaScripts渲染出來的,

原本的HTML網頁就是空殼

對應的,我們可以分析其後臺的Ajax介面,也可以使用Selenium,Splash這樣的庫來實現模擬Javascript的渲染


呼~第一天的爬蟲就學到這裡啦❤

看似短小的一篇文章,花了將近一個多小時進行編寫

未來的暑假時間,持續更新,希望有所收穫,爬蟲更進一步,當然能“變現”就更好啦o((>ω< ))o


本文章學習的視訊為:Python 3網路爬蟲開發實戰(圖靈出品)

請大家多多支援原作者哈!

相關文章