当前位置: 首页 > 编程笔记 >

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

施文彬
2023-03-14
本文向大家介绍python抽取指定url页面的title方法,包括了python抽取指定url页面的title方法的使用技巧和注意事项,需要的朋友参考一下

今天简单使用了一下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方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • sp_sql_page($id) 功能: 获取指定id的页面 参数: $id:页面的id 返回: 类型数组,符合条件的页面 示例: <?php $ID=1000; // $page=sp_sql_page($ID); print_r($page);

  • 我有下面的角函数。 功能: 我有一个侧栏导航控件。我已经创建了4页。 因此,当我单击这些导航项时,相应的页面将正确打开。 还有一些我还没有创建的页面。但根据下面的函数。 当我没有不存在的东西时,它必须返回到文件。 发生的事情是,我在控制台中没有收到错误,地址栏中的url反映了上次单击的有效页面。 有人让我知道我在哪里犯了错误,这种方法对于动态路由是否正确?

  • 本文向大家介绍python使用webbrowser浏览指定url的方法,包括了python使用webbrowser浏览指定url的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python使用webbrowser浏览指定url的方法。分享给大家供大家参考。具体如下: 这段代码提示用户输入关键词,通过webbrowser打开浏览器浏览google 搜索用户输入的关键词 希望本文所述对大

  • 本文向大家介绍python获取指定网页上所有超链接的方法,包括了python获取指定网页上所有超链接的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python获取指定网页上所有超链接的方法。分享给大家供大家参考。具体如下: 这段python代码通过urllib2抓取网页,然后通过简单的正则表达式分析网页上的全部url地址 希望本文所述对大家的python程序设计有所帮助。

  • 本文向大家介绍python基于BeautifulSoup实现抓取网页指定内容的方法,包括了python基于BeautifulSoup实现抓取网页指定内容的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python基于BeautifulSoup实现抓取网页指定内容的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 本文向大家介绍PHP获取当前页面完整URL的方法,包括了PHP获取当前页面完整URL的方法的使用技巧和注意事项,需要的朋友参考一下 一、利用javascript实现: top.location.href 顶级窗口的地址 this.location.href 当前窗口的地址 二、利用PHP实现 http://localhost/PHP/XX.php?id=5 //获取域名或主机地址 //获取网页地址