伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

BeautifulSoup解析html介绍

来源:本站原创 浏览:94次 时间:2022-11-01

爬虫抓取的数据以html数据为主。有时也是xml数据,xml数据对标签的解析和html是一样的道理,两者都是<tag>来区分数据的。这种格式的数据结构可以说是一个页面一个样子,解析起来很麻烦。BeautifulSoup提供了强大的解析功能,可以帮助我们省去不少麻烦。使用之前安装BeautifulSoup和lxml。


#pip install beautifulsoup4==4.0.1 #指定版本,不指定会安装最新版本#pip install lxml==3.3.6           指定版本,不指定会安装最新版本进入Python命令行试试是否安装成功>>> import bs4>>> import lxml>>>

没有报错,说明安装成功。lxml的版本和发布时间可以到下面网站查看

首先代码要引入这个库


from bs4 import BeautifulSoup

然后,抓取


try:    r = urllib2.urlopen(request)except urllib2.URLError,e:    print e.code    exit() r.encoding='utf8'print r.codehtml=r.read() #urlopen获取的内容都在html中mysoup=BeautifulSoup(html, 'lxml') #html的信息都在mysoup中了

假设我们对html中的如下部分数据感兴趣


    <data>        <day>20200214</day>        <id>1</id>        <rank>11</rank>        <name>张三</name>    </data>    <data>        <day>20200214</day>        <id>4</id>        <rank>17</rank>        <name>李四货</name>    </data>

首先要找到tag标签为<data>的数据,而这类数据不止一条,我们以两条为例。那么需要用到beautifulsoup的find_all函数,返回的结果应该是两个<data>数据。当处理每一个<data>数据时,里面的<id><name>等标签都是唯一的,这时使用find函数。


mysoup=BeautifulSoup(html, 'lxml')data_list=mysoup.find_all('data')for data in data_list:#list应该有两个元素    day = data.find('day').get_text() #get_text是获取字符串,可以用.string代替    id = data.find('id').get_text()    rank = data.find('rank').get_text()    name = data.find('name').get_text()    #print name  可以print测试解析结果

这是beautifulsoup最简单的用法,find和find_all不仅可以按照标签的名字定位元素,还可以按照class,style等各种属性,以及文本内容text作为条件来查找你感兴趣的内容,非常强大。


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net