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命令行解析工具Argparse
Apr 20 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
python自动循环定时开关机(非重启)测试
Aug 26 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
Python搭建HTTP服务过程图解
Dec 14 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
pytorch实现MNIST手写体识别
Feb 14 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
python爬取招聘要求等信息实例
Nov 20 Python
python基于openpyxl生成excel文件
Dec 23 Python
linux中nohup和后台运行进程查看及终止
Jun 24 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图像处理函数大全(推荐收藏)
2013/07/11 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
jquery蒙版控件实现代码
2010/12/08 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
2016/06/30 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
python实现ID3决策树算法
2017/12/20 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
Django时区详解
2019/07/24 Python
Python输出指定字符串的方法
2020/02/06 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
运动会入场式解说词
2014/02/18 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
横幅标语大全
2014/06/17 职场文书
女性健康讲座主持词
2015/07/04 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
python数字类型和占位符详情
2022/03/13 Python
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技