HTML和XML文檔的Python解析器:Beautiful Soup

jopen 10年前發布 | 51K 次閱讀 網絡爬蟲 Beautiful Soup

簡介:

Beautiful Soup 是一個可以從HTML或XML文件中提取數據的Python庫.它能夠通過你喜歡的轉換器實現慣用的文檔導航,查找,修改文檔的方式.Beautiful Soup會幫你節省數小時甚至數天的工作時間。

我們可以用它從不提供API調用的web站點獲取網頁并構造數據集,還可以利用它在網頁中查找索引所需要的文本。利用urllib2和Beautiful Soup, 我們可以建立一個爬蟲程序。

urllib2是一個與Python綁定的庫,其作用是方便網頁的下載。urllib和urllib2兩個模塊功能都差不多,但urllib2更好一些。如果只用簡單的下載,urllib就足夠了。


Beautifl Soup 安裝
它是一個HTML和XML文檔的Python解析器。我們可以用它從不提供API調用的web站點獲取網頁并構造數據集,還可以利用它在網頁中查找索引所需要的文本。

項目地址:http://www.crummy.com/software/BeautifulSoup/
官方文檔:http://www.crummy.com/software/BeautifulSoup/bs4/doc/
中文文檔:http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html


下載并解壓,用CMD進入該目錄執行:
python setup.py install

簡單使用示例:

    >>> from bs4 import BeautifulSoup  
    >>> from urllib import urlopen  
    >>> soup=BeautifulSoup(urlopen('http://machinelearningmastery.com/machine-learning-matters/'))  
    >>> soup.head.title  
    <title>Machine Learning Matters | Machine Learning Mastery</title>  
    >>> links=soup('a')  
    >>> len(links)  
    59  
    >>> links[0]  
    <a href="#navigation">Navigation</a>  
    >>> links[0].contents[0]  
    u'Navigation'  
    >>>   

實例:利用BeautifulSoup構建一個網頁圖片下載爬蟲:

import re  
from urllib import *  
from bs4 import BeautifulSoup  

def getimg(url):  
    soup = BeautifulSoup(urlopen(url))  
    html = str(soup)  
    pat = r'http://imgsrc\..+?\.jpg'     
    imglist = re.findall(pat,html)  
    x = 0      
    for img in imglist:  
        urlretrieve(img,"img%s.jpg" % x)  
        print "img%s" %x + " success!"  
        x+=1  

url = 'http://tieba.baidu.com/p/2878062419'  
getimg(url)  
來自:http://blog.csdn.net/tao_sun/article/details/19611061
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!