百度360必应搜狗淘宝本站头条
当前位置:网站首页 > SEO教程 > 正文

机器学习第五发:BS教你如何解析网页,规整数据?

gaoyangw 2025-04-29 00:24 13 浏览 0 评论

现在越来越多的应用和互联网产品做内容的聚合,像今日头条、等等,太多的聚合应用以及不胜枚举,甚至浏览器也可以嵌入聚合的应用。

互联网上拥有太多太多的数据,抓取网页的数据做数据挖掘也是最廉价的获取数据的途径,解析数据是得到规则数据的方法,他为后面数据挖掘、机器学习模型的学习提供支持。

在获取互联网数据的过程中,不可避免的就要使用到网页爬虫技术,此外在抓取下来的网页,需要进一步的解析出自己想要的内容。正则表达式是最常用的解析工具,针对网页目前有个非常便捷的框架,叫做BeautifulSoup。本文使用的是BeautifulSoup 3,现在已经有BeautifulSoup4了,名字改为bs4

(1)下载与安装

# BeautifulSoup 的下载与安装

pip install BeautifulSoup

另外也可以下载安装包进行安装

(2)快速开始

# BeautifulSoup 快速开始

html_doc = urllib2.urlopen('http://baike.baidu.com/view/1059363.htm')

soup = BeautifulSoup(html_doc)

print soup.title

结果:

# BeautifulSoup 结果

<title>前门大街_百度百科</title>

(3)BeautifulSoup对象介绍

BeautifulSoup中主要包含三种类型的对象:

BeautifulSoup.BeautifulSoup

BeautifulSoup.Tag

BeautifulSoup.NavigableString

通过下面例子来认识上面的三种数据类型:

# BeautifulSoup 示例

from BeautifulSoup import BeautifulSoup

import urllib2

html_doc = urllib2.urlopen('http://www.baidu.com')

soup = BeautifulSoup(html_doc)

print type(soup)

print type(soup.title)

print type(soup.title.string)

print soup.title

print soup.title.string

结果为

# BeautifulSoup 示例结果

<class 'BeautifulSoup.BeautifulSoup'>

<class 'BeautifulSoup.Tag'>

<class 'BeautifulSoup.NavigableString'>

<title>百度一下,你就知道</title>

百度一下,你就知道

print soup.title

print soup.title.string

从上面的例子可以比较清晰的看到BeautifulSoup主要包括三种类型的对象。


BeautifulSoup.BeautifulSoup //BeautifulSoup对象

BeautifulSoup.Tag //标签对象


BeautifulSoup.NavigableString //导航string文本对象

(4)BeautifulSoup剖析树

1. BeautifulSoup.Tag对象方法

获取标记对象,通过点号获取Tag对象

# BeautifulSoup 示例

title = soup.title

print type(title.contents)

print title.contents

print title.contents[0]

# BeautifulSoup 示例结果

<type 'list'>

[u'\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053']

百度一下,你就知道

contents方法

获得当前标签的内容list,如果该标签没有子标签,那么string方法和contents[0]得到的内容是一样的。见上面示例

next,parent方法

获得当前的标签的子标签和父标签

# BeautifulSoup 示例

html = soup.html

print html.next

print ''

print html.next.next

print html.next.next.nextSibling

# BeautifulSoup 示例结果

<head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><meta http-equiv="X-UA-Compatible"content="IE=Edge" /><meta content="always" name="referrer" /><meta name="theme-color" content="#2932e1" /><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /><link rel="icon" sizes="any" mask="mask" href="
//www.baidu.com/img/baidu.svg" /><link rel="dns-prefetch" href="//s1.bdstatic.com" /><link rel="dns-prefetch" href="//t1.baidu.com" /><link rel="dns-prefetch" href="//t2.baidu.com" /><link rel="dns-prefetch" href="//t3.baidu.com" /><link rel="dns-prefetch" href="//t10.baidu.com" /><link rel="dns-prefetch" href="//t11.baidu.com" /><link rel="dns-prefetch" href="//t12.baidu.com" /><link rel="dns-prefetch" href="//b1.bdstatic.com" /><title>百度一下,你就知道</title>

......

</head>

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

nextSibling,previousSibling

获得当前标签的下一个兄弟标签和前一个兄弟标签

对不同的网页,将你需要的标签中的数据,例如评论、阅读量、购买量、价格、数量等等,通过BS解析获得。解析是数据获取整理过程中不可少的一部分。

进一步的,借助机器学习模型对上述数据进行建模分析,得到一定的结论。

机器学习第四发:机器学习基础

机器学习第三发:入门书籍及网络课程

机器学习第二发:支持向量机

机器学习第一发:逻辑回归

相关推荐

Chrome43正式版发布 新增海量应用扩展

2015-07-0809:26:10作者:刘菲菲谷歌Chrome浏览器一向被大家称为“版本帝”,原因就是更新频率相当高。最近,Chrome又发布了新版,版本号为v43.0.2357.132。本次更...

软网推荐:快速下载需要的谷歌浏览器扩展

谷歌浏览器现在已经不是一个单纯的网页浏览器,而更加像是一个管理操作平台,因为它的很多功能都是通过功能扩展来实现的。但是通常我们要想访问谷歌的扩展商店非常的麻烦,所以就需要寻求其他的解决方法。第三方扩展...

谷歌预告3项Chrome浏览器改进,提高管理标签页效率

IT之家9月11日消息,谷歌公司昨日(9月10日)发布新闻稿,宣布为iOS和安卓版Chrome浏览器引入3项改进,从而帮助用户提高管理标签页效率。1.在iOS上体验标签页...

谷歌发布Chrome浏览器更新,修复密码消失问题:持续18个小时

IT之家7月27日消息,谷歌发布Chrome浏览器更新,修复了存在于密码管理器中的错误,该错误导致Chrome用户密码消失18个小时。Chrome用户反馈更新到版本127.0....

谷歌浏览器Chrome 38.0.2125.101稳定版下载

IT之家(www.ithome.com):谷歌浏览器Chrome38.0.2125.101稳定版下载今天,谷歌浏览器团队带来最新版Chrome稳定版更新。具体版本号为38.0.2125.101,该版...

谷歌浏览器8年后首换新LOGO,变了又好像没变

近日,ChromeCanary版浏览器(开发者专用的每日构建版)在新版中首次更新了浏览器图标,意味着这个新的图标很快将开始出现在各位用户的设备上了。...

谷歌浏览器,居然被山寨了(谷歌浏览器可靠吗)

大家看看下面两张Logo,光看图标你能分辨出来哪个是假的Chrome,哪个是真的吗?...

谷歌浏览器Chrome 45.0.2454.93稳定版下载

IT之家讯谷歌Chrome浏览器更新至45.0.2454.93稳定版。谷歌官方并没有给出更新日志,因此本次更新重点在于小范围问题修复。Chrome浏览器用户可下载并且更新至该版本。Chrome45...

微软推出的新版Edge浏览器,让我抛弃用了5年的谷歌

随着新版Edge浏览器的发布,这个微软的亲儿子以崭新的面貌和大家见面啦。这次更新可谓是好评如潮,相比浏览器届的老大哥——谷歌浏览器,它少了些臃肿,但又多了一些独特的功能。今天,我就为大家介绍8...

谷歌Chrome浏览器安卓版将支持Material You设计版地址栏

IT之家1月26日消息,Google的MaterialYou主题在Android上提供了一致的配色方案。谷歌现在正在为Android上的谷歌Chrome浏览器的地址栏提供...

你想要的功能,Edge浏览器都有(你想要的功能,edge浏览器都有哪些)

2020年之前,如果有求推荐一款好用的浏览器,那谷歌Chrome浏览器一定是最好的选择,现在却不一定了。今年一月份,微软正式推出了基于谷歌Chromium内核的MicrosoftEdge浏览器,它继...

谷歌浏览器Chrome更新:图标再变动,版号来到100

经过十多年的更新,谷歌浏览器GoogleChrome终于迎来了“100”的版本号,并在近日于Windows、Mac、iOS和安卓等多个平台正式上线。尽管是很有象征性意义的版本号更新,但它这一...

不再桌面端独占,谷歌Chrome浏览器安卓版将迎来任务管理器

IT之家10月4日消息,谷歌Chrome浏览器即将为Android用户带来一项备受期待的功能——任务管理器。虽然Chrome浏览器在桌面端已经具备了任务管理器的功能,但移动端一...

安卓版谷歌Chrome浏览器测试新面板,方便用户管理跨设备标签页

IT之家8月30日消息,科技媒体mspoweruser昨日(8月29日)发布博文,报道称Canary频道最新安卓版谷歌Chrome浏览器正测试新特性,为跨设备标签页添加了一个...

谷歌浏览器,网站页面禁用右键功能,如何解决?

进入浏览器开发者工具点击谷歌浏览器右上角三个点,选择【更多工具】——【开发者工具】找到“代码段”【源代码/来源】——【>>】——【代码段】...

取消回复欢迎 发表评论: