本文旨在成为技术文章。 我希望您可以应用本文的内容来改善您的工作和技能。
> Photo by NASA on Unsplash
自从我开始在AI领域工作以来,我发现100万美元的问题正在寻找数据。 您可以随心所欲,拥有许多改变世界的绝妙想法,但是如果没有数据,您将一无所有。 由于数据已成为非常珍贵的商品,因此您需要详细了解如何搜索。
您可以通过三种方式从互联网上挖掘数据:
· API
· 网页抓取
· 开源数据集
谷歌搜索信息不会带您走远
您在公司中不断看到的一件事是,人们需要花费大量时间来搜索和收集来自Internet上的网站的excel数据库数据。 对于雇员和雇主而言,这都是浪费宝贵的时间。
在过去的几年中,Google已成为搜索信息最烦人的工具之一。 搜索会优先考虑广告,定位搜索不再可靠。 现在,尝试手动收集大量信息(尤其是从不同的网站收集信息)是一种可笑的尝试。
您有什么选择?
1. API
简而言之,API是算法的集合,这些算法使我们能够连接到数据库以下载信息。
例如,我要下载包含关键字” #sustainability”的推文列表。 我需要一个Twitter API。 如果我想连接到股票市场,这是一个在线购物,国际象棋,游戏的网站,则同样适用…
请注意,您将需要网站发布其OPEN SOURCE API才能连接到他们的数据库。 该网站将对您允许下载的信息量进行限制。 只有少数网站无需您付费即可提供信息。 但是,如果幸运的话,您仍然有机会免费下载信息。
如何搜索API
例如,我想下载我最喜欢的国际象棋网站lichess.org的国际象棋比赛。 您可以在Google(lol)上获取lichess API,如果幸运的话,可以找到lichess.org发布的源代码。
实际上,https://lichess.org/api包含API和下载国际象棋比赛的说明。
所有网站都提供API吗?
不幸的是没有。 考虑到Facebook必须限制信息的下载,因此,不允许您从Facebook下载任何信息(例如,甚至是帖子)。 我将讨论API的替代方法,但是对于Facebook,未经书面同意,您不能下载任何信息。
如果网站提供API,我可能会遇到什么限制?
· 编码
如果您不知道如何编码,这是第一个问题。 每个网站都需要一种个性化的方法,而不是看起来那么简单。
· 格式
尽量减少信息浪费的常用格式是JSON,但还有其他形式。 您下载的数据需要进行标准化,理解并以您想要的方式存储(我可以猜测一个.csv文件)。 这很耗时,并且代码并不总是稳定的。
· 价格
有时,您会很幸运地找到免费提供信息的网站。 在大多数情况下,没有订阅计划,您甚至无法下载免费信息:为备份计划做好准备。
· 请求频率
您不能只从数据库下载全时,全速千兆字节的数据。 信息流可能会降低服务器的速度,因此网站要非常小心,并限制要执行的请求数。 您将需要每n秒执行GET请求(从在线数据库下载信息的操作)。 当然,整个过程可以自动化。
· 容量限制
大多数提供API的网站(除非它们都是开源的)都这样做是为了获利(现在您了解了销售数据的含义)。 如果您希望下载大于一定大小的数据,他们会要求您付款。
· 请求限制
限制下载的另一种形式的度量标准不是大小,而是请求数。 例如,使用Alpha Vantage下载历史股票价格每天限制为500个请求。
这些数字(例如每天10万条推文限制)似乎不是一个很大的限制,但是如果您经营着一家拥有500名工人的公司,并且您的目标是建立巨大的AI预测模型,那么10万条推文对于您想要构建的内容来说是可笑的数目 。
2.网页抓取
毕竟,Web抓取已成为我最喜欢的下载数据的方式,毕竟,处理API从来都不是一件有趣的事(尝试询问您是否不相信我)。
一些网站上有您可以直接在其网页上看到的信息列表。 我要使用的示例之一是Xtrawine。
该网站包含有关葡萄酒的数千种信息。 看起来不错,如果您是数据分析师! 如果您使用Google进行搜索,则会看到该网站不提供开源API。 数据存储在他们的数据库中,您无权访问。
无需询问您连接的数据库,而是可以利用主页上已经可见的数据。 该信息存储在页面所附的HTML代码中。 您唯一需要做的就是访问代码并编写遍历所有数千页的算法,并提取每瓶葡萄酒的信息,并将其存储到.csv数据集中。
这是为从该网页提取信息而编写的Web抓取算法的输出。 您可以看到结果。 我用漂亮的汤从网站上提取HTML,但是还有其他可用的python工具,取决于您。
网页抓取的缺点
请注意,在线数据可能是公开的,但它不是购物中心。 您不仅可以连接到任何网站并下载所有想要的内容,不仅不礼貌,而且还可能违反他们的政策。 因此,如果您打算将这些信息用于您的工作或研究,请务必谨慎下载内容和下载量。
3.开源数据集
下载数据的最后一种方法是找到已准备好的数据。 诸如Kaggle或data.world之类的网站都有一系列开源数据集,您可以下载这些数据集进行实验。 不幸的是,您不太可能找到要搜索的内容。 大多数信息不会更新,并且如果您要搜索特定的内容(例如价格列表或营销列表),则必须使用前面两种方法来检索它。
这些预制数据集什么时候有用?
Covid-19紧急情况就是一个例子。 例如,如果您检查Kaggle,您将发现有关Covid-19的每日更新的数据集(大量信息)。 研究人员可以为寻找与遗传相关的信息做出贡献,并可以创建预测病毒传播的模型。