自定义 API 的 Web 抓取欢迎使用 Pow Tracker!
自定义 API 的 Web 抓取
欢迎来到 Pow Tracker!
简介
我在 Flatiron 学院的毕业设计是开发一款自定义的滑雪 胜地追踪、天气预报和雪况报告应用。在科罗拉多州一个偏远的滑雪小镇待了四年后,我最近搬回了西雅图地区,决定开发一个我真正想用的东西。
这个想法源于我计划周末活动时,对西雅图周边不同城市的天气状况的痴迷追踪。哪里天气最暖和?哪里阳光最充足?最重要的是,哪里可以避雨?我会在 iPhone 上的天气应用中追踪这些信息,并根据这些信息制定计划。
冬天我也喜欢做同样的事情,不过我会浏览各种网站,查看雪况报告、滑雪场门票价格和天气预报。我决定创建一个应用程序,整合所有这些我作为用户重视的信息点,让我可以“收藏”它们,并在我的个人页面上持续关注它们。
规划好细节后,我开始寻找免费和付费的在线 API。我很快意识到,没有任何在线资源能够提供我想要的精确数据,更不用说以合理的价格获得一半的数据了,所以我决定自学如何创建一个网络爬虫。
刮擦
我偶然发现了一个很棒的在线资源,可以指导开发者(你和我)利用 Ruby、Nokogiri 和 HTTParty 创建一个简洁高效的数据抓取工具。我的项目后端是用 Ruby on Rails 编写的,我强烈推荐你观看这个 30 分钟的视频,学习如何创建一个简单但高效的数据抓取工具。YouTube视频链接

数据来源
我的信息来自一个公共网站,由于我的项目只是为了好玩,也是为了我的个人作品集,所以我不会遇到任何版权问题。我决定从skiresort.info上抓取三个不同的页面,并将数据限制在北美滑雪场的范围内。

如果有人有兴趣查看我的抓取文件,我在底部提供了我的项目链接。它位于back_end_final/scraper.rb。我记得我为我的项目抓取了近 90 份雪情报告、约 500 份天气预报报告和近 1300 个度假村的数据。通过检查网站并找到我想要抓取的元素的特定 ID,我能够在终端中反复操作,直到获得所有数据,并在数据库中找到当天对应的天气图标。
深入探索
如果你查看代码,你会注意到我最终的函数“度假村爬虫”充满了三元语句。 在这个过程中,我遇到的最困难的事情之一是处理不完整的数据。skiresort.info网站上的数据量非常大,以至于他们无法保存每个度假村制服的可用数据量。加拿大的一些小型滑雪胜地根本无法像惠斯勒或韦尔那样拥有如此多的信息。我通过使用三元语句并深入研究第 n 个子元素来解决这个问题,从而为我的应用程序找到所需的精确数据点。

它看起来有点老套,我可能应该重构一下,不过,它真的有效!
为项目提取自己的数据非常有趣,我肯定会在接下来的项目中使用 Web Scraper。我发现Pow Tracker * 只能 * 从运行抓取功能之日起抓取数据。由于这会导致数据跟踪效率低下,所以我想给自己设定一个延伸目标,让抓取器自动化,这样我就能获得实时数据。
Flatiron School 后端的 Pow Tracker 最终项目
欢迎来到 Pow Tracker!
什么是 Pow Tracker?
这款应用专为滑雪爱好者或滑雪度假者打造,方便他们查看北美不同滑雪胜地的统计数据、天气预报和雪况报告。想象一下,您正在盐湖城滑雪,想充分享受滑雪之旅……哪里的滑雪条件最好?您可以使用几款应用,或者用谷歌搜索几页,或者您也可以使用 Pow Tracker!Pow Tracker 从互联网上获取实时数据,为用户提供最新的天气、降雪量、度假村地形以及每个度假村的票价等统计数据。作为网站访客,您可以使用所有这些功能;但作为用户,您可以“收藏”某个度假村、天气预报和雪况报告,并将这些数据呈现在您的个性化网站上……
鏂囩珷鏉ユ簮锛�https://dev.to/sofiajonsson/web-scraping-for-custom-api-6dp