自动采集数据(机票采价需求分析获取明确的需求是高效、准确开展工作)
优采云 发布时间: 2021-09-07 16:06自动采集数据(机票采价需求分析获取明确的需求是高效、准确开展工作)
随着大数据时代的蓬勃发展和大数据技术的深入应用,在互联网上自动采集票价成为可能。本文结合工作实践,重现了从需求分析到技术选择再到设计完成的工作过程。
机票采购需求分析
获得明确的需求是高效准确工作的先决条件。在票价工作中,一是有特殊的时间要求,必须在特定日期采集特定日期出票;第二个不是通过携程、飞猪等第三方平台,而是通过飞行官网采集实第三个是保证价格采集,需要在订单上保存价格区域截图页面。
相关技术选择
经过需求分析研究,发现有两个关键技术点:一是采集的实际价格,二是价格区截图。您需要选择一个合适的程序。通过搜索相关资料,发现Python的Selenium库可以满足价格获取和截图的需求。 Selenium 可以模拟用户在浏览器中的所有操作,甚至无需打开浏览器(后台无界面操作)。这个结果完全符合技术要求,可以抓取价格,实现截图。
东方航空价格设计与实施
东航网站的价格购买中,最头疼的有两个问题:一是登录验证,二是网页数据加载不出来,中途弹出验证问题。
登录验证和中途验证。通过相关资料找到了更成熟的解决方案。通过对比验证图片和原图的RGB信息,找到缺口坐标轴,计算出水平移动距离,以“前3后1”的方式移动到缺口位置,验证通过.
刷新网页,直到数据加载完毕。由于无法加载数据的问题,查询结果页面增加了元素判断,通过Xpath获取一个key元素。如果存在,继续执行操作,如果不存在,刷新网页重新判断。
按购买日计算。本文的思路是获取当前日期,并根据价格日期的要求计算价格的日期范围。然后使用 Pandas 库的 Series 方法生成查询机票的价格日期周期。不同的网站有不同的日期格式,日期格式参数在格式化日期的日期计算方法中设置。
价格区域的屏幕截图。在下单页面,使用F12工具定位价格区域的Xpath,应用Selenium方法获取Xpath的坐标、长、宽。操作截图时,先截图整个网页,然后根据价格区域的坐标、长、宽进行截图。
国航价格收购的设计与实现
查机票。对于出发城市和到达城市的输入框,国航网站有输入提示。这篇文章的思路是用中文发送出发和输入地点,获取提示框的Xpath地址,然后调用click方法实现提示框输入。出发日期直接在输入框中输入日期。
识别弹出窗口。实际操作中,成都有弹窗提示注册窗口。这时候调用Selenium方法切换到Alert窗口。如果切换成功,点击弹窗确认。如果切换失败,则无需任何操作。
滑动到订单页面底部。在实际开发过程中,并没有找到具体的Selenium滑动页面方法,可以通过编写Javascript代码发送到浏览器执行。具体代码如下:
相关经历
首先,技术选择很重要,使用合适的技术可以促进更好的工作。二是程序可以进一步完善,可以抽象为公共工具。出发地和到达地可根据用户指定选择。