旗下产业: A产业/ A实习/ A计划
全国统一咨询热线:010-5367 2995
首页 > 热门文章 > 大数据分析 > 大数据分析如何跟踪迁移模式

大数据分析如何跟踪迁移模式

时间:2020-09-18来源:www.aaa-cg.com.cn点击量:作者:Sissi
时间:2020-09-18点击量:作者:Sissi




  提升技能是成为数据科学家的重要组成部分。刚开始时,您主要侧重于学习编程语言,正确使用第三方工具,显示可视化内容以及对统计算法的理论理解。下一步是在更困难的数据集上测试您的技能。
 

  有时,这些数据集需要大量清理,格式不正确或很难找到。关于理解我们周围数据的重要性,这里有很多内容,但是对于如何实际获取数据却几乎找不到。
 

  随着您成为数据科学家的成长,最初的数据调查,探索和检索是最重要的学习步骤。从多个来源中查找和清理数据集无疑会产生前期成本—但是一旦您拥有了清理,格式正确且易于理解的数据集,回答数据上多个问题的可能性就会大大提高。
 

  在大数据分析如何跟踪迁移模式中,我们将逐步研究,检索和清理现实世界的数据集。为了纪念世界候鸟日,我们将使用候鸟数据。我们还将介绍构建您自己的数据集所涉及的成本收益和必要的工具。有了这些基础知识,您就可以深入研究并找到自己要使用的数据集。
 

  研究可用的候鸟数据集
 

  您应该从一个关键问题开始每次调查:我们要学习什么?有了这个问题,找到合适的数据集就容易了。对于我们的示例,我们想了解北美鸟类的迁徙方式。要了解这些模式,我们需要在几年中找到准确的迁移数据。
 

  很难找到这样的模糊数据。可能会有业余爱好者在个人网站,论坛或其他渠道上托管自己的数据,但是业余数据集通常容易出错并且包含丢失的数据。相反,我们应该寻找在政府或大学网站上托管的更专业的数据集。
 

  搜寻关键字“鸟类迁徙”,“数据库”和“美国”,我们找到了几个有关鸟类迁徙信息的网站。第一个是eBird,包含康奈尔实验室托管的鸟类迁徙数据。第二个是来自美国鱼类和野生动物服务(USFWS)网站,该网站使用合作伙伴关系和公民研究数据来创建报告。我们希望使用两种服务的数据集,以便我们可以交叉检查数据并确定不一致之处。
 

  让我们从eBirds数据集开始。
 

  导航到下载页面,系统将要求您在康奈尔研究实验室创建一个帐户。登录后,您可以进入下载页面。但是在访问完整的数据集之前,您需要填写一张表格,描述您打算如何使用数据。我们成功填写了表格并等待了几天,然后才能完全访问数据集。需要时间,但不太困难。

大数据分析如何跟踪迁移模式
 

  接下来,让我们看一下USFWS。乍一看,该网站似乎比eBirds门户网站容易使用得多。有一个明确的链接可以指导我们找到完整的数据库列表,其中包含不同的鸟类,地理数据点和迁徙飞行路线。如果它们具有有效的链接,则这些井井有条且经过分类的数据集将非常有帮助且易于分析。

大数据分析如何跟踪迁移模式
 

  不幸的是,从USFWS门户检索数据并不容易。有多个无效链接,格式不正确的数据集以及无法按所宣传的那样运行的HTML按钮。尽管这些问题大多是不良的界面设计,但所有HTTP端点似乎都可以正常运行,并且只需使用少量Python代码,我们就会发现我们能够获取所需的数据。
 

  查找数据
 

  由于USFWS网站提供的链接数量众多,很难仅找到可能的数据集端点。当我们潜入时,我们发现的第一个成功数据集是通过链接到USFWS发布的水禽飞行方式数据手册。该数据手册据说包含了我们进行调查所需的所有信息,但存在一个主要缺陷:它以PDF格式存储。由于PDF的结构不一致,因此很难解析它们,因此这应该是最后的选择。

大数据分析如何跟踪迁移模式
 

  致力于水鸟飞行路线模式的数据集,我们决定遵循另一条链接到USFWS报告的路径。这些报告被描述为1995年以来有关北美水禽飞行路线模式的调查数据。正是我们想要的。单击报告的链接后,我们将看到服务条款和免责声明阻止程序。接受后,有一个报告生成表格,使研究人员能够限制有关水禽类型,状态或发现该水禽的“图”的数据。

大数据分析如何跟踪迁移模式
 

  而不是限制数据,我们选择表单中的每个值,然后按提交。最后,我们向您展示了一个分页表格,其中包含完整数据集的样本。

大数据分析如何跟踪迁移模式
 

  滚动到页面底部,还有整个数据集的下载按钮!不幸的是,按下按钮会将我们重定向到403 Unauthorized页面。
 

  有点沮丧,但并非没有希望,我们正在寻找解决方案。首先,我们追溯为检索数据而采取的步骤。这些步骤是导航到下载页面,提交简单的表单提交,解析HTML格式的表并在数据的每一页上运行解析器。考虑这些步骤,我们意识到可以使用Python网络抓取脚本轻松地将它们自动化!
 

  下载数据
 

  我们将使用两个主要包来抓取数据。
 

  1)请求(用于发出HTTP请求)

  2)beautifulsoup(用于解析HTML)
 

  首先,requests执行HTTP请求,表单提交和下载HTML表文件。使用Chrome Dev Tools,我们将导航到调查表单页面,并填写表单中的所有值,然后按下Submit按钮,然后检查请求的标题。

大数据分析如何跟踪迁移模式
 

  我们分别突出显示了请求类型,URL和表单数据的字段。从屏幕截图中,要生成报告,我们需要使用给定的表单数据将POST请求发送到URL。为了使事情变得简单,我们将使用URL编码的表单数据源代码。然后,我们将使用以下代码段使用和内容类型标头来发出POST请求。requests.post()x-www-form-urlencoded

大数据分析如何跟踪迁移模式
 

  这种感觉是正确的,但是我们缺少的重要组成部分,我们才能发出请求。如果要运行该代码段,那么我们的请求将被所需的条款和条件页面阻止,而不是返回报告。回想一下,USFWS要求您在使用数据之前接受其免责声明。
 

  要解决此问题,请注意,在接受条款和条件时,您的浏览会话拥有对其余报告的完全访问权限。要在Python脚本中重新创建此行为,我们需要实例化一个持久requests.Session对象。使用该requests.Session对象,我们将导航到“接受”页面来接受免责声明,并且在经过身份验证的会话中,我们将提交表单数据。
 

  总之,它看起来像:

大数据分析如何跟踪迁移模式
 

  成功!我们根据需要获得了报告表,但是请注意,有616页的数据要解析。我们可以减少数量的一种方法是选择更多数量的textRows表单值。让我们将其更改为每个表99行的最大值。

大数据分析如何跟踪迁移模式
 

  现在我们已拥有每页的最大行数,我们可以转到HTML解析步骤。
 

  解析数据
 

  要解析数据,我们需要BeautifulSoup使用报告响应HTML字符串创建一个对象。在后台,该BeautifulSoup对象将HTML字符串转换为树状数据结构。这样可以轻松查询诸如包含报告数据的标签之类的标签。

大数据分析如何跟踪迁移模式
 

  使用我们的可分析对象,我们现在可以在HTML文档中搜索该标记。在文档中,报告数据在第二个中,因此我们将使用该.findAll()方法并在列表中选择第二个项目。然后,我们将过滤表的所有行,并将它们设置为rows变量。

大数据分析如何跟踪迁移模式
 

  接下来,我们要提取标题行并清理值。作为参考,HTML表格的标题行使用标记格式化,数据行使用格式化。要获取标签值,我们需要调用标签的.string属性BeautifulSoup。我们将从表的第一行中获取标头值。

大数据分析如何跟踪迁移模式
 

  提取标题后,就该从行中获取数据了。我们将遍历该表的各行,找到所有标签,并将其分配给新行。此外,我们将合并标题和行,然后清理一些空白值,以使其更易于解析。
 

大数据分析如何跟踪迁移模式
 

  使用进行更多的unicode清理后unicodedata.normalize(),我们应该获得以下输出:

大数据分析如何跟踪迁移模式
大数据分析如何跟踪迁移模式


  解析表之后,我们可以遍历数据集的每一页并将值组合在一起。
 

  放在一起
 

  在构建完整的数据集之前,尚需实现三个部分:
 

  1)查找要分页的数据总页数。

  2)创建一个form_data模板以动态修改表单数据。

  3)循环浏览页面并合并所有行。
 

  我们将从第一点开始。窥视报告页面的HTML,我们看到总页数在标题中。我们可以从标题中提取总数的一种方法是从标题中分离数字,然后将其转换为整数。这是可行的,但是依靠标题字符串的解决方案太脆弱了。
 

  相反,如果我们仔细查看表单数据,则会有一个隐藏的输入字段为我们完成工作。在标记的底部,带有的输入值name=txtLastPage。使用BeautifulSoup,我们只需搜索输入标签和匹配名称,然后将值转换为整数。这是一个潜在的实现。

大数据分析如何跟踪迁移模式
大数据分析如何跟踪迁移模式
 

  现在,我们要一起添加模板和分页。首先,我们将创建一个字符串模板,该模板form_data使用字符串格式提交动态表单数据。在我们的情况下,我们要动态修改当前页面值。接下来,我们将找到使用页面总数的值并保持循环,直到我们学会了数据集。经过一点清理,我们得到以下最终实现:

大数据分析如何跟踪迁移模式
大数据分析如何跟踪迁移模式
 

  太棒了!我们已经提取了完整的数据集,并且它也处于Python可读状态。从这里,我们可以添加更多数据清理功能,将表保存到文件中,并对数据进行一些分析。
 

  结论
 

  使用一些基本的Python Web抓取,我们能够:
 

  1)使用会话访问仅经过身份验证的内容。

  2)解析HTML表格数据并将其映射到Python列表列表。

  3)跨多个HTML页面自动抓取数据集。
 

  从这个例子中,我们能够证明Python的Web抓取能力,用于数据调查,清理和检索。如文章开头所述,在询问数据科学中更困难的问题时,您需要查找自己的数据集。网络上有大量可用数据。一旦您拥有查找和收集此数据的工具和经验,您将在分析中获得很高的回报。
 

  如果您想更新示例,请添加以下内容:
 

  1)使用表数据创建一个CSV文件。

  2)使用协程或线程加快网络呼叫的阻塞。

  3)循环浏览页面,而不必两次请求第一页。

  4)添加错误处理以提高代码的健壮性。


 

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可先就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可推荐就业!

©2007-2021/北京漫动者教育科技有限公司版权所有
备案号:京ICP备12034770号

老师想和你聊一聊

©2007-2021/ www.aaa-cg.com.cn 北京漫动者教育科技有限公司 备案号: 京ICP备12034770号 监督电话:010-53672995 邮箱:bjaaa@aaaedu.cc

京公网安备 11010802035704号

网站地图