【每天幾分鐘,從零入門python編程的世界!】
今天我們簡單的了解下網絡爬蟲,網絡爬蟲其實就是一個自動獲取網頁內容的程序。
Python的爬蟲需要用到一個第三方的庫requests。
requests庫可以在git bash中使用命令pip install requests進行安裝。
如果你安裝了anaconda的話,它裡面就自帶這個requests庫。
那麼要使用這個requests庫,還是跟以前一樣,用import進行引入。然後我們請求網易的這個網站的網址,然後把獲取到的網頁的原始碼列印出來。
代碼如下:
運行結果:
由於列印的結果是非常長的文本字符串,所以只截取其中一小部分。
我們平常上網是這樣一個過程:
在地址欄輸入網址,其實就是請求該網址指向的網站伺服器,伺服器會把相應的網頁原始碼以及圖片等資源,發送到我們的電腦或者手機上,然後我們的電腦或者手機上面的瀏覽器會對伺服器發送過來的網頁原始碼等資源進行解析,然後渲染成我們人類能夠看得懂的內容。
現在我們把剛剛用requests請求到的網易的網頁原始碼,在Python裡面進行解析。Python裡面沒有瀏覽器,那麼怎麼進行解析呢?
這就要用到另一個第三方庫Beautiful Soup來進行解析。
同樣,如果你安裝了anaconda,它就自帶了這個庫。如果你沒有安裝anaconda,可以在git bash中用pip install BeautifulSoup來進行安裝。
(關於Beautiful Soup,如果你感興趣,可以自行百度,查看它的文檔)。
現在我們在Python中,引入BeautifulSoup這個第三方庫對請求到的網頁原始碼進行解析。
代碼如下:
以上代碼說明:
BeautifulSoup這個第三方庫就相當於Python裡面的瀏覽器。
Python是一門面向對象的程式語言,它裡面的萬事萬物都可以看做是一個對象。所以這裡用BeautifulSoup()函數可以創建出一個專門的對象,這個對象是專門對接BeautifulSoup的對象。
soup = BeautifulSoup(a,"html.parser")返回的結果是一個對象,保存在soup中。第一個參數a,是要解析的字符串對象,這裡的a就是使用requests請求到的網頁原始碼的文本字符串,第二個參數"html.parser"表示解析成什麼格式的文件,BeautifulSoup可以解析很多種格式的文件,在這裡html.parser就表示解析成html格式的文件,因為網頁文件就是html文件。
print(soup.p)表示把解析出來的html格式的對象soup的第一個段落列印出來,p在html標記語言中表示段落標籤。關於html相關的知識,如果是沒有接觸過web前端相關知識的小夥伴,可能不是很清楚,後面會介紹。
以上代碼運行結果:
我們打開網易官網,
我們在網易官網網頁上就看到了「曾國藩靠什麼中年逆襲」這個文章標題(當然這是我幾個月前操作時的結果,現在網易官網網頁上的內容可能已經變了,但是這個問題不影響我們學習,網頁內容變了,我們的代碼爬取到的內容肯定是跟網頁一樣的),這就驗證了我們在Python中用BeautifulSoup解析網易的網頁原始碼的結果。
我是時問新,歡迎關注我。跟我一起從零開始學習Python,每天花一點時間,開啟python編程新世界的大門,領略新的風光,讓人生多一種可能!