文章列表:http://blog.csdn.net/kicilove/article/
引言:
从网络提取数据的需求和重要性正在变得越来越迫切。 每隔几个星期,我都会发现自己需要从网络中提取数据。 例如,上周我们正在考虑创建一个关于互联网上可用的各种数据科学课程的热度和情绪指数。 这不仅需要找到新的课程,而且还要抓住网络的评论,然后在几个指标上进行总结!
一、从网上提取信息的方式
有几种方法可以从网络中提取信息。 使用API可能是从网站提取数据的最佳方式。 几乎所有像Twitter,Facebook,Google,Twitter,StackOverflow这样的大型网站都提供了API,可以以更加结构化的方式访问他们的数据。
可悲的是,不是所有的网站都提供了一个API。 有的是因为他们不希望读者以结构化的方式提取大量的信息,有的则由于缺乏技术知识而不提供API。 在这些情况下做什么?此时需要从网站来获取信息。
可能还有其他一些方法,如RSS提要,但它们的使用是有限的,因此我没有把它们包括在这里的讨论中。
二、什么是网络爬取?
网络爬取是一种从网站提取信息的计算机软件技术。 这种技术主要集中在将网络上的非结构化数据(HTML格式)转换为结构化数据(数据库或电子表格)。
您可以通过各种方式执行网络抓取,包括使用Google文档几乎所有的编程语言。 我更倾向于Python,因为它的易用性和丰富的eocsystem。 它有一个名为“BeautifulSoup”的库来协助这项工作。 在本文中,我将向您展示使用python编程学习网页抓取的最简单方法。
对于那些需要用非编程方式从网页中提取信息的人,你也可以看看import.io。 它提供了一个GUI驱动的界面来执行所有基本的网页抓取操作。
三、网络抓取所需的库
我们知道,python是一种开源的编程语言。 你可能会发现许多库来执行一个功能。 因此,有必要找到最好的使用库。 我更喜欢BeautifulSoup(python库),因为它很容易和直观。 准确地说,我将使用两个Python模块来抓取数据:
- Urllib2:这是一个可用于获取URL的Python模块。 它定义了函数和类来帮助URL操作(基本和摘要式身份验证,重定向,cookie等)。
- BeautifulSoup:这是一个从网页中提取信息的工具。 您可以使用它来提取表格,列表和段落,也可以使用过滤器从网页中提取信息。 在本文中,我们将使用最新版本的BeautifulSoup 4。
BeautifulSoup不会为我们提取网页。 这就是为什么,我使用urllib2与BeautifulSoup库结合使用。
除了BeautifulSoup之外,Python还有其他几个用于HTML抓取的:
- mechanize
- scrapemark
- scrapy
四、基础知识 - 熟悉HTML(标签)
在执行网页抓取时,我们处理html标签。 因此,我们必须对它们有很好的了解。 如果您已经了解HTML的基本知识,则可以跳过本节。 以下是HTML的基本语法:
这个语法有如下详述的各种标签:
1。<!DOCTYPE html>:HTML文档必须以类型声明开始
2。HTML文档包含在 <html> <script type="math/tex" id="MathJax-Element-1"></script>和 </html> <script type="math/tex" id="MathJax-Element-2"> </script>之间
3。HTML文档的可见部分在 <body> <script type="math/tex" id="MathJax-Element-3"></script>和 </body> <script type="math/tex" id="MathJax-Element-4"> </script>之间
4。HTML标题用 <h1> <script type="math/tex" i