码迷,mamicode.com
首页 > 编程语言 > 详细

python 解析HTML

时间:2015-06-26 09:24:22      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:python   网页解析   

1. 理解网页上的数据

  • 网页上的数据主要有:
    • HTML
    • XHTML
    • XML
    • JSON
  • 需要一个接受数据并解析的机制
  • 需要一个产生数据并发送的机制

2. 解析HTML

  • 层次化的数据
  • 有多个解析HTML的第三方库,例如:LXML,BeautifulSoup,HTMLParser等等。
  • 解析HTML所面临的问题:
    • 没有统一的标准。
    • 很多网页并没有遵循HTML文档

2.1 BeautifulSoup

  BeautifulSoup第三方库有以下特点:
  
- 容易使用。
- 版本4允许使用lxml和html5lib,可以更好的处理不规范的HTML。
- 在处理编码方面也比较有效。

  下面是解析方法及优缺点的一个对比:
  
  技术分享


3 代码示例

  从终端进入python环境,按照以下方式进行试验。如果没有bs4库的话,可以使用以下命令(Ubuntu下)进行安装:
  sudo pip install beautifulsoup4
  
  

>>>
>>> from bs4 import BeautifulSoup
>>>
>>> import urllib
>>> html = urllib.urlopen(“http://192.168.1.33/temwet/index.html“)
>>>
>>> html
addinfourl at 164618764 whose fp = socket._fileobject object at 0x9cd19ac
>>> html.code
200
>>>

  下面看一下网页的源代码:
  
  技术分享
  
  使用BeautifulSoup进行解析:
  使用bt = BeautifulSoup(html.read(),"lxml")语句对接收到的html进行解析,bt.title, bt.meta, bt.title.string, bt.find_all(‘meta‘)进行元素的查找。对查找到的多个结果,可以以数组的形式存储和访问。
  
  技术分享
  
  如果想提取网页中含有的超链接呢?我们只需要查找到”a”标签,并将其提取出来即可。links = bt.find_all(‘a‘) 可将网页中所有的超链接保存在links中,如果len(links)等于0的话就是网页中没有超链接,否则直接以数组的方式访问即可。

python 解析HTML

标签:python   网页解析   

原文地址:http://blog.csdn.net/jeanphorn/article/details/46641387

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!