范例+代码:一文带你上手Python网页抓取神器BeautifulSoup库

2017-10-16 11:53

  抓取一个股指信息对您来说不够,对吗?我们可以试试同时提取多个股指信息。首先,我们需要修改quote_page,把它定义为网址的数组。

  2. 您的程序不要过于频繁的向网站发出数据请求(也被称为垃圾请求),这种做法可能会使网站崩溃。请确保您的程序行为合理(也就是说和人类的行为相似)。对一个网站每秒进行一次数据请求是比较好的做法。

  如果您想了解关于HTML标签,标识码和类的更多内容,请参考W3Schools 出品的教程。

  我们采用Python进行网页数据抓取,并采用简单强大的BeautifulSoup 库完成分析。

  然后我们把数据提取部分代码改成一个for循环。这个循环可以一一处理网址,并以元组(tuple)类型把所有数据存入变量data.

  现在如果运行程序,您应该可以导出一个index.csv文件。您可以在Excel中打开文件,看到里面有如图所示的一行数据。

  对于Mac用户来说, OS X操作系统已经预先安装好Python。您需要打开终端并输入python --version。您应该可以看到python的版本为2.7.x。

  现在我们知道所需数据的,我们可以开始写代码构建我们的网络爬虫了。现在请打开您的文字编辑工具!

  所以如果您每天都运行这个程序,您就可以很简单的获取标准普尔指数价格,不需要像之前一样在网站上翻找。

  如果你是个投资达人,每天查找收盘价一定是个烦心事,更不用提数据来源于多个网站的时候。我们可以用代码写一个网络爬虫 (web scraper) 来帮助我们自动从网站获取股指信息,从而大大简化数据提取过程。

  我们已会如何获取数据,现在来学习如何存储数据了。Excel逗号隔开的数据格式(CSV)不失为一个好选择。这样我们就可以在Excel中打开数据文件进行查看和进一步处理。

  3. 网站的布局随时间不断变化,所以请您确保时常重新访问网站,如果需要的话,修改抓取代码。

  作为一个关注股票市场的投资人,我们想要从这一页得到股指名称(标准普尔500指数)和价格。首先,右键点击打开浏览器的检查器(inspector),查看网页。

  BeautifulSoup 库使用简单,能很好的完成小量的网站抓取。但是如果您对大量的抓取信息感兴趣,您可以考虑其他方法:

  网络上的信息是任何人穷极一生也无法全部了解的。你需要的或许不是简单的获得信息,而是一个可以收集,整理,分析信息,并且具有拓展性的方法。

  别忘了我们的数据存储在特有的层次中。BeautifulSoup库中的find()函数可以帮助我们进入不同的层次提取内容。我们需要的HTML类“名称”在整个网页中是独一无二的,因此我们可以简单的查找div class=name

  1. 在您进行网络抓取时,你应该查看网站的条款和条件。请仔细阅读数据使用声明。通常情况下,您抓取的数据不能商用。

  网页抓取可以自动提取网站上的数据信息,并把这些信息用一种容易理解的格式呈现出来。网页抓取应用广泛, 在本教程中我们将重点它在金融市场领域的运用。

  著名《今日美国》被僵尸粉搞崩溃了,只好求助 Facebook 和 FBI

  2. 您可以试试把一些公共应用程序接口(Application programming interface, API) 整合入您的代码。这个获取数据的方法远比网页抓取高效。举个例子来说,您可以试试Facebook Graph API,这个应用程序接口可以帮助您获取脸书网站上不显示的隐藏信息。

  在此之前,我们需要导入Python的csv模块和datetime模块。Datetime模块用于获取数据记录时间。请将下面几行代码插入您的导入代码部分。

  3. 如果数据量过大,您可以考虑使用类似MySQL的数据库后端来存储数据。

  并且,HTML标签常常带有标识码(id) 或类(class)属性,标识码用来唯一的识别某个HTML标签,并且标识码的值在整个HTML文件中是唯一的。类属性可以定义同类HTML标签相同的样式。我们可以利用标识码和类来帮助我们定位想要的数据。

  DRY是“别重复你做过的事”的英文简写。您可以尝试像链接中的这个人一样把日常的工作自动化。同时您还可以考虑其他有趣的项目,比如说掌握您的脸书好友的上线时间(当然在征得他们同意的情况下),或者获取某个论坛的主题列表来尝试自然语言处理(这是目前人工智能的热门话题)!

  现在我们有了包含整个网页的HTML代码的变量soup。我们就从soup开始着手提取信息。