爬蟲最常用就是要在response回的html文件中獲取我們想要的資源,而常用方法除了正則就是BeautifulSoup庫了。其實,媛媛本人呢,是習慣使用正則的,不過經常聽到很多同學表示正則太複雜,想要使用BeautifulSoup庫,今天呢,就滿足大家,帶著大家超級簡單案例,快速入門。
1.首先,使用一個庫,先安裝。參考媛媛之前的帖子,有詳細的教大家第三方庫安裝。
2.再,導入我們要用的各種庫。媛媛使用python環境為3.6。想要問問什麼不用2.7的同學,請看媛媛之前的帖子。或者加下我的學習交流群,零基礎入門,(145 010 486)。
# 導入需要的庫
import requests
from bs4 import BeautifulSoup
3.上過老師課的同學應該知道,爬蟲就是模擬瀏覽器訪問資源去爬取我們需要的東東的,所以,瀏覽器去訪問資源時,第一步呢就是輸入url,同樣的,我們的爬蟲,第一步也是拿到這個url。簡單以百度為例。
url = 『www.baidu.com'
4.通過requests去模擬登錄網站(開發者工具,在requests請求頭可以看到發送http請求的方式為get)並獲取html代碼,存入變量」html」中
html = requests.get(url)
5.我們把網頁解析為 BeautifulSoup格式,以便我們用BeautifulSoup 庫來分析網頁。
soup = BeautifulSoup(html, 『html.parser』)
6.現在我們有了包含整個網頁的HTML代碼的變量soup。我們就從soup開始著手提取信息。BeautifulSoup庫中的find()函數可以幫助我們進入不同的層次提取內容。我們需要的HTML類「名稱」在整個網頁中是獨一無二的,因此我們可以簡單的查找<div>.如下圖。
# 獲取「名稱」類的<div>代碼段落並提取相應值
name_box = soup.find(『h2』, attrs={『class』: 『s-news-list-wrapper』})
在我們得到標籤之後,我們可以用name_box的text屬性獲取相應值
name = name_box.text.strip() # strip() 函數用於去除前後空格
print name