python爬蟲:爬蟲的簡單介紹及requests模組的簡單使用

對講雞發表於2022-02-24

python爬蟲:爬蟲的簡單介紹及requests模組的簡單使用?

一點點的建議:?

(學習爬蟲前建議先去了解一下前端的知識,不要求很熟悉,差不多入門即可學習爬蟲,如果有不瞭解的,我也會補充個一些小知識.)

(瞭解一些前端的知識對於學習爬蟲有很大的幫助.)

這邊還是先說一下,作者使用pycharm,推薦這個軟體,因為這個文字編譯器,有很多優秀的功能,對於新手也是非常友好的。(以後如果工作,可能是寫python的程式設計師,用到這個軟體的頻率也是很高的。)

————————————————————————————————————————————————————————————————

?一個問題:

question: 為什麼我們編寫爬蟲就可以獲取網頁裡的各種資料,程式碼 ?

  我們使用瀏覽器上網,來獲取網頁,從而來獲得我們想要的內容,

而我們編寫爬蟲,其實就是模擬瀏覽器上網,來獲取網頁中我們想要的內容。

1.一點介紹

requests 模組:

requests 模組是爬蟲的最重要的部分之一,我們通過這個模組,來獲取網頁的資料,

像我們比如說,要獲取某個網頁的網頁原始碼,或者是要爬取B站的某個up主的粉絲數,

或者你為了能夠在一些網站白嫖某些小說,就用到了requests模組,

(注:為了獲取網頁的資料,requests模組並不是唯一的,在python中還有urllib模組,

也可以獲取網頁資料,但是urllib模組相對比較老,且不比requests模組方便,所以作者在這邊選擇requests模組。)


2.requests模組學習

一點前端知識:

http的請求型別有很多種,我們寫爬蟲時主要是用到post和get這兩種。(其他的也有用,暫時不做介紹)

簡單說一下,暫時就先知道get可以直接獲取網頁的內容,

但是有些網頁的載入,需要使用者輸入引數才能動態載入出來,所以就比較需要post,它可以攜帶一些引數,從而返回我們想要的內容。


在匯入requests模組後,我們就可以使用裡面的物件來實現我們的要求。

requests.get(url="...",headers=...):這個函式可以返回我們想要的資料,不過返回的是一個物件,我們要自己定義個物件來承接,然後可以將其重構成我們想要的格式。

requests.post(url="...",headers=...,params=...):這個跟get差不多,區別是後面params攜帶的是你要的引數。(比如你要做一個翻譯器,params就可以是你要翻譯的內容。)

url就是你要爬取的網址,像headers的話,就是用來包裝你的爬蟲,讓你的爬蟲偽裝成瀏覽器,(因為大部分的網站,會有反爬機制,他不想讓爬蟲來爬取自己的內容,所以我們就需要包裝一下我們的爬蟲。)這樣就可以成功爬取網頁。

headers的包裝之一(UA偽裝)

這裡介紹一種常見的偽裝方法:UA偽裝,顧名思義,就是使用者引擎偽裝。這樣可以讓網站認為,你是一臺電腦,而不是一個爬蟲。

方法:

隨便開啟一個網頁,摁F12,也就是java的除錯工具,然後點選上面的【網路】這個鍵。

然後重新整理你的網頁,在你的除錯工具網路那邊左下角就會有這些出現,

接下來就是隨便點選一個,在他的右邊,就會出現一堆內容,先不用管,直接拉到最底下,你就會找到一個叫做【"User-Agent"】的東西。

然後就是複製到你的程式碼裡面用字典進行包裝了。

示意如下:

然後就可以用進你的程式碼裡面了。


爬蟲的步驟:(怎麼寫爬蟲)

一般來說,爬蟲的步驟,可以概括為,指定url,獲取網頁內容,解析網頁內容,最後進行儲存。然後比如你要做一些特定需求的爬蟲,也是在這些步驟之上,做些變化而已。

實戰1:爬取搜狗搜尋的網頁程式碼。

<1>安裝包

在自己電腦的終端輸入"pip install requests"即可成功安裝requests包。

<2>開始寫程式碼

(記得自己寫,這邊貼作者程式碼,還有就是這邊爬取這個搜狗的程式碼,不需要用到headers包裝。)

爬取完了之後,作者是存到了自己的資料夾下面,然後開啟 搜狗.html ,我們就可以看到網頁的原始碼了。

如下圖:

看起來是不是很抽象,看不懂,我們這時候,只要用編譯器開啟你爬取回來的網頁程式碼,就可以看見你爬取回來的,是不是正確的網頁原始碼。

比如這個搜狗的搜尋網頁:

在這裡這一句,就可以充分表明,是你自己本地的網頁,而不是自己又開啟了搜狗搜尋的網頁。

<3>最後講兩句

爬蟲要學習的內容還有很多,這裡只是入入門,打個樣讓大家嘗試一下,給大家一個大致印象,接下來需要更多練習跟學習來學爬蟲。可以多上上視訊網站看看。

(作者的更新週期很長,平常可能記起來要寫部落格才寫的?)

相關文章