重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关使用BeautifulSoup怎么解析html,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联公司是一家业务范围包括IDC托管业务,网站空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,遂宁托管服务器,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。
爬虫抓取的数据以html数据为主。有时也是xml数据,xml数据对标签的解析和html是一样的道理,两者都是
#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中的如下部分数据感兴趣
20200214 1 11 张三 20200214 4 17 李四货
首先要找到tag标签为的数据,而这类数据不止一条,我们以两条为例。那么需要用到beautifulsoup的find_all函数,返回的结果应该是两个数据。当处理每一个数据时,里面的
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作为条件来查找你感兴趣的内容,非常强大。
关于使用BeautifulSoup怎么解析html就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。