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 相关文章推荐
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
在Django的视图中使用数据库查询的方法
Jul 16 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
Python 正则表达式的高级用法
Dec 04 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
Python 实现使用dict 创建二维数据、DataFrame
Apr 13 Python
python自定义函数实现最大值的输出方法
Jul 09 Python
Python动态声明变量赋值代码实例
Dec 30 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
Flask中sqlalchemy模块的实例用法
Aug 02 Python
python基于机器学习预测股票交易信号
May 25 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 生成饼图 三维饼图
2009/09/28 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
javascript实现评分功能
2020/06/24 Javascript
Python中文件遍历的两种方法
2014/06/16 Python
python 美化输出信息的实例
2018/10/15 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
意大利奢侈品网站:Italist
2016/08/23 全球购物
旧时光糖果:Old Time Candy
2018/02/05 全球购物
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
房地产销售员岗位职责
2015/04/11 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
MySQL去除密码登录告警的方法
2022/04/20 MySQL