python抽取指定url頁面的title

2021-07-27 16:17:32 字數 1818 閱讀 9231

今天簡單使用了一下python的re模組和lxml模組,分別利用的它們提供的正規表示式和xpath來解析頁面原始碼從中提取所需的title,xpath在完成這樣的小任務上效率非常好,在這裡之所以又使用了一下正規表示式是因為xpath在處理一些特殊的頁面的時候會出現亂碼的情況,當然這不是xpath的原因,而是頁面本身編碼,跟utf-8轉碼之間有衝突所致,這裡看**:

# !/usr/bin/python

#-*-coding:utf-8-*-

'''功能:抽取指定url的頁面內容中的title

'''import re

import chardet

import urllib

from lxml import etree

def utf8_transfer(strs):

'''utf8編碼轉換

'''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抽取網頁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抽取網頁title

'''html = utf8_transfer(html)

compile_rule = ur'.*'

title_list = re.findall(compile_rule, html)

if title_list == :

title = ''

else:

title = title_list[0][7:-8]

print title

if __name__ == '__main__':

url = ''

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

下面是結果:

簡單的小實踐,繼續學習,歡迎交流

python抽取指定url頁面的title方法

python抽取指定url頁面的title方法 今天簡單使用了一下python的re模組和lxml模組,分別利用的它們提供的正規表示式和xpath來解析頁面原始碼從中提取所需的title,xpath在完成這樣的小任務上效率非常好,在這裡之所以又使用了一下正規表示式是因為xpath在處理一些特殊的頁面...

python抽取指定url頁面的title方法

python抽取指定url頁面的title方法 今天簡單使用了一下python的re模組和lxml模組,分別利用的它們提供的正規表示式和xpath來解析頁面原始碼從中提取所需的title,xpath在完成這樣的小任務上效率非常好,在這裡之所以又使用了一下正規表示式是因為xpath在處理一些特殊的頁面...

python抽取指定url頁面的title方法

今天簡單使用了一下python的re模組和lxml模組,分別利用的它們提供的正規表示式和xpath來解析頁面原始碼從中提取所需的title,xpath在完成這樣的小任務上效率非常好,在這裡之所以又使用了一下正規表示式是因為xpath在處理一些特殊的頁面的時候會出現亂碼的情況,當然這不是xpath的原...