一、開發環境
1.Python 3.7windows版 下載鏈接:https://www.python.org/downloads/windows/
2.Pycharm 下載鏈接:https://www.jetbrains.com/pycharm/download/#section=windows
二、Python庫包
1.urllib
urllib是Python標準庫的一個URL處理包,包含了4個模塊,每個模塊都有特定的函數實現對網站的操作:
1.1 urllib.request:打開和讀取URL;
1.2 urllib.error:使用try捕捉處理錯誤;
1.3 urllib.parse:解析URL;
1.4 urllib.robotparser:解析robots.txt文本文件。
以下是urllib庫的簡單使用(爬取豆瓣電影網頁爲例):
from urllib import request #導入request模塊
response=request.urlopen("https://movie.douban.com/") #打開豆瓣電影網頁
html=response.read() #讀取網頁html代碼
html=html.decode("utf-8") #將代碼轉碼成utf-8格式,生成剖析樹
print(html) #輸出網頁代碼
2.BeautifulSoup
BeautifulSoup是一個第三方庫,用於解析html/xml文本,它可以很好的處理不規範標記並生成剖析樹(parse tree)。配合urllib在獲取到html文本後可通過其上的標籤提取部分指定文本。
2.1 BeautifulSoup(html,“html.parser”):生成文檔樹,html爲解析文本,html.parser爲解析模型;
2.2 Beautifulsoup將html文本解析成4種對象類型:
2.2.1 Tag:標籤,html文本中用<>包括起來的東西
2.2.2 NavigabString:標籤的文本內容,標籤下顯示的文本
2.2.3 BeautifulSoup:文檔內容,可以當成一個特殊的Tag
2.2.4 Comment:與NavigabString相似,但它會省略註釋符號,從而得到註釋內容
2.3 find_all(name,attrs,recursive,text,limit):在文檔樹中搜索標籤名爲name,標籤屬性爲attrs,是否遞歸爲recursive(默認爲True),標籤文本爲text的標籤,最多搜索limit條。
具體參考BeautifulSoup官方文檔:http://beautifulsoup.readthedocs.io/zh_CN/v4.4.0
以下是BeautifulSoup庫的簡單使用:
from urllib import request #導入request模塊
from bs4 import beautifulSoup #導入beautifulSoup庫
response=request.urlopen("https://movie.douban.com/") #打開豆瓣電影網頁
html=response.read() #讀取網頁html代碼
soup=BeautifulSoup(html,"html.parser") #生成文檔樹,效果與utf-8格式編寫的網頁使用代碼html=html.decode("utf-8")相似
#Tag 標籤
print(soup.p) #獲取html文本中第一個名字爲p的標籤
print(soup.p.name) #name:獲取第一個p標籤的名字,即p
print(soup.p.attrs) #attrs:獲取第一個p標籤的屬性
print(soup('p')) #獲取所有名字爲p的標籤
print(soup.p.contents) #contents:獲取p標籤下的所有子節點內容
print(type(soup.p.children)) #children:對p下的子節點循環生成一個生成器
#NavigabString 標籤內容
print(soup.p.string) #第一個p標籤的文本顯示
print(soup.p.get_text()) #p標籤的內容
三、導入庫包
1.urllib是python標準庫,所以直接在項目代碼中添加“import urlib”字段即可完成導入。
2.BeautifulSoup是第三方庫,導入方法如下:
1)在Pycharm主界面中,打開設置:File->Settings…
2)在設置中,找到項目解釋器,並在展開框中點擊“+”,爲項目添加庫包
3)在搜索框中輸入“bs4”,選中bs4庫包並點擊左下角“Install Package”將庫包導入項目
4)在項目代碼中添加“from bs4 import BeautifulSoup”字段即可完成庫包導入
5)第一次從setting中導入庫包後,之後再想使用BeautiulSoup庫包就只需要執行4)步驟就行了。