今天簡單使用了一下python的re模塊和lxml模塊,分別利用的它們提供的正則表達式和xpath來解析頁面源碼從中提取所需的title,xpath在完成這樣的小任務上效率非常好,在這里之所以又使用了一下正則表達式是因為xpath在處理一些特殊的頁面的時候會出現(xiàn)亂碼的情況,當然這不是xpath的原因,而是頁面本身編碼,跟utf-8轉(zhuǎn)碼之間有沖突所致,這里看代碼:
公司主營業(yè)務:成都網(wǎng)站建設、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出左貢免費做網(wǎng)站回饋大家。# !/usr/bin/python #-*-coding:utf-8-*- ''' 功能:抽取指定url的頁面內(nèi)容中的title ''' import re import chardet import urllib from lxml import etree def utf8_transfer(strs): ''' utf8編碼轉(zhuǎn)換 ''' try: if isinstance(strs, unicode): strs = strs.encode('utf-8') elif chardet.detect(strs)['encoding'] == 'GB2312': strs = strs.decode("gb2312", 'ignore').encode('utf-8') elif chardet.detect(strs)['encoding'] == 'utf-8': strs = strs.decode('utf-8', 'ignore').encode('utf-8') except Exception, e: print 'utf8_transfer error', strs, e return strs def get_title_xpath(Html): ''' 用xpath抽取網(wǎng)頁Title ''' Html = utf8_transfer(Html) Html_encoding = chardet.detect(Html)['encoding'] page = etree.HTML(Html, parser=etree.HTMLParser(encoding=Html_encoding)) title = page.xpath('/html/head/title/text()') try: title = title[0].strip() except IndexError: print 'Nothing' print title def get_title(Html): ''' 用re抽取網(wǎng)頁Title ''' Html = utf8_transfer(Html) compile_rule = ur'<title>.*</title>' title_list = re.findall(compile_rule, Html) if title_list == []: title = '' else: title = title_list[0][7:-8] print title if __name__ == '__main__': url = 'http://www.baidu.com' html = urllib.urlopen(url).read() new_html = utf8_transfer(html) try: get_title_xpath(new_html) get_title(new_html) except Exception, e: print e
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
名稱欄目:python抽取指定url頁面的title方法-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://jinyejixie.com/article42/dieeec.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、網(wǎng)站維護、網(wǎng)站排名、虛擬主機、品牌網(wǎng)站制作、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容