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