从网站抓取数据的3种最佳方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从网站抓取数据的3种最佳方法相关的知识,希望对你有一定的参考价值。
在过去的几年中,爬网数据的需求变得越来越大。爬网的数据可用于不同字段中的评估或预测。那么,今天小编就为大家分享可以采用的三种方法来从网站爬网数据。
参考技术A1.使用网站API
许多大型社交媒体网站,例如Facebook,Twitter,Instagram,StackOverflow,都提供API供用户访问其数据。有时,您可以选择官方API来获取结构化数据。如下面的Facebook Graph API所示,您需要选择进行查询的字段,然后订购数据,执行URL查找,发出请求等。
2.建立自己的搜寻器
但是,并非所有网站都为用户提供API。某些网站由于技术限制或其他原因拒绝提供任何公共API。有人可能会提出RSS提要,但是由于限制了它们的使用,因此我不会对此提出建议或发表评论。在这种情况下,我想讨论的是我们可以自行构建爬虫来处理这种情况。
3.利用现成的爬虫工具
但是,通过编程自行爬网网站可能很耗时。对于没有任何编码技能的人来说,这将是一项艰巨的任务。因此,我想介绍一些搜寻器工具。
Octoparse是一个功能强大的基于Visual Windows的Web数据搜寻器。用户使用其简单友好的用户界面即可轻松掌握此工具。要使用它,您需要在本地桌面上下载此应用程序。
http://Import.io也称为Web搜寻器,涵盖所有不同级别的搜寻需求。它提供了一个魔术工具,可以将站点转换为表格,而无需任何培训。如果需要抓取更复杂的网站,建议用户下载其桌面应用程序。构建完API后,它们会提供许多简单的集成选项,例如Google Sheets,http://Plot.ly,Excel以及GET和POST请求。当您认为所有这些都带有终身免费价格标签和强大的支持团队时,http://import.io无疑是那些寻求结构化数据的人的首要选择。它们还为寻求更大规模或更复杂数据提取的公司提供了企业级付费选项。
关于从网站抓取数据的3种最佳方法,该如何下手的内容,青藤小编就和您分享到这里了。如果您对大数据工程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于数据分析师、大数据工程师的技巧及素材等内容,可以点击本站的其他文章进行学习。
如何从其他网站获取数据? [关闭]
【中文标题】如何从其他网站获取数据? [关闭]【英文标题】:How can I get data from other websites? [closed] 【发布时间】:2013-06-10 13:32:44 【问题描述】:我想创建一个网站,从其他网站中提取信息并将它们打印到我的网站中,我正在研究阶段,所以我想听听一些意见以及这个项目的最佳解决方案是什么?
听说Python使用解析器可以做到这一点,我只是想知道我应该走什么路径,应该使用哪种语言?。
【问题讨论】:
允许和鼓励使用其数据的网站提供比抓取更好的方法,例如 API、RSS 等。如果您必须抓取,则可能违反使用条款和/或版权规定。 我想从其他网站获取特定信息以总结它们并在我的网站中提供,如果用户想阅读全部信息,他将能够获得主要来源。我总是把所有的功劳归功于用户获得汇总信息的地方。我不知道这是否仍然违反版权规定。 【参考方案1】:您可以编写一些网络蜘蛛从其他网站收集一些数据。通过使用 urllib2 或 requests 可以帮助您从网站下载 html。Beautiful 或 PyQuery 可以帮助您解析 html 并获取您想要的数据。
【讨论】:
【参考方案2】:Python 具有出色的网页抓取功能:urllib、BeautifulSoup、XPath 等。此视频将帮助您快速开始使用 python 网页抓取:http://www.youtube.com/watch?v=Ap_DlSrT-iE - 他正在使用 urllib 和 BeautifulSoup 在他的示例脚本中抓取 huffingtonposts' 提要.
如果您想要一个抓取系统(带有 Web 前端和管理员的抓取工具来发布您抓取的内容),这对您来说可能是一个不错的选择 - https://github.com/holgerd77/django-dynamic-scraper - 如果您已经熟悉,我强烈建议您这样做姜戈。
【讨论】:
非常感谢,如果您有更多这些资源,我将不胜感激。 不客气。我已经更新了我的答案。【参考方案3】:我更喜欢使用urllib2通过URL请求页面,然后使用regular expressions提取数据。如果数据是小块,这很有效。代码读起来相当不错:如果行包含 /regex/,则存储该值。
【讨论】:
BeautifulSoap 和 urllib2 有什么区别? 你问错问题了。在这种情况下,BeautifulSoup 和正则表达式将被比较。不同之处在于 BeautifulSoup 尝试解析整个 HTML 响应并将其理解为结构化的文档树。一个简单的正则表达式将评估 HTML 数据,扫描指定的字符序列。正如作者建议的那样,可能是一行一行的。【参考方案4】:Requests 就是为这类事情而设计的。
然而,在转义 HTML 之前,请检查网站是否提供 API。如果是这样,你已经在做生意了!
【讨论】:
我要提取信息的网站没有任何API,布局从3年前就没有改变过,我认为他们不会改变它。【参考方案5】:带有 BeautifulSoup 和 Urllib2 的 Python 可能会很好地为您服务。当然,您是否应该从其他网站抓取数据是值得怀疑的,如果这些网站更改布局,您可能会发现自己一直处于挣扎之中。
【讨论】:
我怎样才能将它挂载到 web 上?,我应该使用 Django 框架吗?,你认为使用它的最佳工具是什么?从框架到数据库。以上是关于从网站抓取数据的3种最佳方法的主要内容,如果未能解决你的问题,请参考以下文章