大数据文摘作品,转载要求见文末
编译
元元、康璐
网络上的信息是任何人穷极一生也无法全部了解的。你需要的或许不是简单的获得信息,而是一个可以收集,整理,分析信息,并且具有拓展性的方法。
你需要网页抓取(Webscraping)技术。
网页抓取可以自动提取网站上的数据信息,并把这些信息用一种容易理解的格式呈现出来。网页抓取应用广泛,在本教程中我们将重点讲解它在金融市场领域的运用。
如果你是个投资达人,每天查找收盘价一定是个烦心事,更不用提数据来源于多个网站的时候。我们可以用代码写一个网络爬虫(webscraper)来帮助我们自动从网站获取股指信息,从而大大简化数据提取过程。
我们开始吧。
我们采用Python进行网页数据抓取,并采用简单强大的BeautifulSoup库完成分析。
对于Mac用户来说,OSX操作系统已经预先安装好Python。您需要打开终端并输入python--version。您应该可以看到python的版本为2.7.x。
对于Windows用户而言,请由官方网站安装Python。
下一步,我们需要利用pip命令获取BeautifulSoup库。Pip是Python中管理库和包的工具。
在终端中输入:
注意:如果您不能运行上面的命令,在每行前面加上sudo再试试。
基础知识
在学习代码之前,让我们先来了解HTML的基础知识和网页抓取的基本规则。
标签
如果你已经充分理解HTML标签,请跳过这一部分
这就是HTML网页的基本语法。
每一对tag标签内包含网页的一段代码:
1.!DOCTYPEhtml:HTML文件必须以文件类型声明开头
2.HTML文件包含在html和html/标签之间
3.元(meta)和脚本(script)声明包含在head和/head标签之间
4.网站上可见的部分包含在body和/body标签之间
5.h1和h6标签之间的部分为网站标题
6.p标签用于定义段落
其他有用的标签还有:a是超链接的标签,table是表格的标签,tr是表格行的标签,td是表格列的标签。
并且,HTML标签常常带有标识码(id)或类(class)属性,标识码用来唯一的识别某个HTML标签,并且标识码的值在整个HTML文件中是唯一的。类属性可以定义同类HTML标签相同的样式。我们可以利用标识码和类来帮助我们定位想要的数据。
如果您想了解关于HTML标签,标识码和类的更多内容,请参考W3Schools出品的教程。
网络抓取规则
1.在您进行网络抓取时,你应该查看网站的条款和条件。请仔细阅读数据合法使用声明。通常情况下,您抓取的数据不能商用。
2.您的程序不要过于频繁的向网站发出数据请求(也被称为垃圾请求),这种做法可能会使网站崩溃。请确保您的程序行为合理(也就是说和人类的行为相似)。对一个网站每秒进行一次数据请求是比较好的做法。
3.网站的布局随时间不断变化,所以请您确保时常重新访问网站,如果需要的话,修改抓取代码。
查看页面
让我们以BloombergQuote网站的其中一页为例。
作为一个