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


Posted in Python onMay 11, 2018

今天简单使用了一下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>.*</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

下面是结果:

百度一下,你就知道
百度一下,你就知道

简单的小实践,继续学习,欢迎交流。

以上这篇python抽取指定url页面的title方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python操作json数据的一个简单例子
Apr 17 Python
python BeautifulSoup设置页面编码的方法
Apr 03 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
python获取文件路径、文件名、后缀名的实例
Apr 23 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
Python Excel处理库openpyxl使用详解
May 09 Python
Python函数装饰器原理与用法详解
Aug 16 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
python解释器安装教程的方法步骤
Jul 02 Python
python获取对象信息的实例详解
Jul 07 Python
python清除字符串中间空格的实例讲解
May 11 #Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
May 11 #Python
Python中的TCP socket写法示例
May 11 #Python
Python简单定义与使用二叉树示例
May 11 #Python
Python堆排序原理与实现方法详解
May 11 #Python
python 执行shell命令并将结果保存的实例
May 11 #Python
python 实现登录网页的操作方法
May 11 #Python
You might like
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
ThinkPHP分页实例
2014/10/15 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
namespace.js Javascript的命名空间库
2011/10/11 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
js实现登录验证码
2016/12/22 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
Python yield 使用浅析
2015/05/28 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
试用期员工考核制度
2014/01/22 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
物流管理专业求职信
2014/05/29 职场文书
党员民主评议自我评价
2014/10/20 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
世界十大评分最高的动漫,CLANNAD上榜,第八赚足人们眼泪
2022/03/18 日漫