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

作者:Together_CZ 时间:2022-11-15 21:52:40 

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

下面是结果:

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

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

来源:https://blog.csdn.net/Together_CZ/article/details/59109044

标签:python,title,url
0
投稿

猜你喜欢

  • 利用XMLHTTP批量生成静态页的函数

    2008-09-10 11:07:00
  • 用Python编写一个简单的CS架构后门的方法

    2021-08-07 00:15:58
  • Python 用户登录验证的小例子

    2021-07-04 09:39:25
  • Echarts利用多X轴实现七天天气预报效果的示例代码

    2024-03-11 10:33:05
  • python 文件操作删除某行的实例

    2022-09-21 12:15:18
  • 解决FCKEditor在IE10、IE11下的不兼容问题

    2023-05-26 14:01:22
  • SQL SERVER日志进行收缩的图文教程

    2024-01-27 13:09:16
  • Window10下python3.7 安装与卸载教程图解

    2021-02-15 16:23:54
  • SQL 统计一个数据库中所有表记录的数量

    2012-01-29 18:21:36
  • eBay 打造基于 Apache Druid 的大数据实时监控系统

    2022-12-25 21:54:37
  • python3.9之你应该知道的新特性详解

    2021-09-01 12:13:42
  • python爬虫的一个常见简单js反爬详解

    2022-10-26 11:46:27
  • 基于h5py的使用及数据封装代码

    2021-10-22 08:45:39
  • 解决pip安装的第三方包在PyCharm无法导入的问题

    2022-10-18 11:20:27
  • python 自定义异常和主动抛出异常(raise)的操作

    2022-03-22 12:43:22
  • Python基础语法(Python基础知识点)

    2021-03-04 11:10:34
  • Web脚本开发语言比较

    2007-08-22 17:32:00
  • Golang语言学习拿捏Go反射示例教程

    2023-06-22 23:30:23
  • dl+ol应用

    2008-06-21 17:04:00
  • vue+webpack模拟后台数据的示例代码

    2024-06-05 10:04:11
  • asp之家 网络编程 m.aspxhome.com