Beautiful Soup的用法(一):安裝和基礎信息提取

從爬蟲獲取了html的源代碼以后,通常我們是需要提取html代碼里面的關鍵信息, 而提起關鍵信息可以用很多種方式,最常用的就是用正則表達式進行匹配了,在python 中有一個很優秀的第三發庫,同樣可以更優雅的做這些事情,這就是這系列文章要介紹的 Beautiful Soup

關于Beautiful Soup 的介紹,這里就先不多說了,現在Beautiful Soup 的版本已經到了 4.x, 介紹的話也是關于 4.x的內容。

Beautiful Soup 的安裝

還是使用python 中簡單使用的 easy_installpip

如下安裝:

pip install beautifulsoup4

或者你想用

easy_install beautifulsoup4

Beautiful Soup 3 目前已經停止開發,推薦在現在的項目中使用Beautiful Soup 4,不過它已經被移植到BS4了,也就是說導入時我們需要 import bs4

提取關鍵信息

Beautiful Soup 在解析html的時候用到了很多html的相關知識,在這里先不做太多的介紹,先來看看,我們是如何提取和得到關鍵信息的。

在這里先看一段html 代碼如下:

<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title" name="dromouse"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1"><!-- Elsie --></a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
</body>
</html>

需要提取所有a標簽下的 鏈接地址,也就是 href 字段的值。

#!/usr/bin/python
#coding=utf-8

from bs4 import BeautifulSoup

html = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title" name="dromouse"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1"><!-- Elsie --></a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
</body>
</html>
"""

soup = BeautifulSoup(html, "lxml")

as_soup = soup.find_all('a')

for a_soup in as_soup:
    print a_soup['href']

輸出的結果如下:

http://example.com/elsie
http://example.com/lacie
http://example.com/tillie

找到了所有a 下的鏈接,這是Beautiful Soup在提取關鍵信息的第一次嘗試,如果之前使用過用正則來提取信息的話,可以發現Beautiful Soup 更加在意html的整個結構,根據結構來提取出需要的關鍵信息。

轉載請標明來之:http://www.peyycv.tw/

更多教程:阿貓學編程

Beautiful Soup的用法 系類文章

所有評論

如果對文章有異議,請加qq:1752338621