python抽取指定网址页面标题的方法

  

今天简单使用了一下python的再保险模块和lxml模块,分别利用的它们提供的正则表达式和xpath来解析页面源码从中提取所需的标题,xpath在完成这样的小任务上效率非常好,在这里之所以又使用了一下正则表达式是因为xpath在处理一些特殊的页面的时候会出现乱码的情况,当然这不是xpath的原因,而是页面本身编码,跟utf - 8转码之间有冲突所致,这里看代码:

        # !/usr/bin/python   # - *编码:utf - 8 - *   “‘   功能:抽取指定url的页面内容中的标题   “‘   进口再保险   进口chardet   进口urllib   从lxml进口etree   def utf8_transfer (str):   “‘   use utf8编码转换   “‘   试一试:   如果isinstance (str, unicode):   str=strs.encode (utf - 8)   elif chardet.detect (str)(“编码”)==癎B2312”:   str=strs.decode (“gb2312”、“忽略”).encode (“utf - 8”)   elif chardet.detect (str)(“编码”)==皍tf - 8”:   str=strs.decode (“utf - 8”、“忽略”).encode (“utf - 8”)   除了例外,e:   打印“utf8_transfer错误”,str, e   返回str   def get_title_xpath (Html):   “‘   用xpath抽取网页标题   “‘   Html=utf8_transfer (Html)   Html_encoding=chardet.detect (Html)(“编码”)=etree页。HTML (HTML解析器=etree.HTMLParser(编码=Html_encoding))   title=page.xpath ('/html/头/标题/text () ')   试一试:   title=[0] .strip ()   除了IndexError:   打印“没有”   打印标题   def get_title (Html):   “‘   用重新抽取网页标题   “‘   Html=utf8_transfer (Html)   compile_rule=你的' & lt; title>。* & lt;/title>”   title_list=re.findall (compile_rule Html)   如果title_list==[]:   title=?   其他:   title=title_list [0] [7: 8)   打印标题   if __name__==癬_main__”:   url=' http://www.baidu.com '   html=urllib.urlopen (url) .read ()   new_html=utf8_transfer (html)   试一试:   get_title_xpath (new_html)   get_title (new_html)   除了例外,e:   打印e      

  

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

  

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

  

以上这篇python抽取指定网址页面标题的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

python抽取指定网址页面标题的方法