python 解析HTML

1. 理解网页上的数据

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

2. 解析HTML

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

2.1 BeautifulSoup

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

  下面是解析方法及优缺点的一个对比:
  
  com


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
>>>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值