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

2022-08-26 11:27:09 字數 1841 閱讀 8194

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

今天簡單使用了一下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

python抽取指定url頁面的title

今天簡單使用了一下python的re模組和lxml模組,分別利用的它們提供的正規表示式和xpath來解析頁面原始碼從中提取所需的title,xpath在完成這樣的小任務上效率非常好,在這裡之所以又使用了一下正規表示式是因為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的原...