Python,Javascript和Web自动化

在过去的几个月中,我一直在尝试比较到目前为止使用的计算机语言。原因是,我经常遇到手头的任务,并且意识到有多种不同的方法可以用多种语言来完成任务,并且我陷入了分析瘫痪。

无论如何,本文的重点是Python,Javascript及其在Web自动化中的使用。公平地讲,两种语言都有不同的历史并且发展非常不同,但是我认为两种语言都可以提供Web自动化。我将尝试在不同的使用模式和执行Web自动化的方式的上下文中比较Python和Javascript。

网络自动化到底是什么?

我已经看到很多初学者(包括初学者)误解了Web自动化的范围。我要在这里说几句话。首先,

Web抓取是一种Web自动化,但是Web自动化比之更为通用。

其次,

如果您在网络上自动执行任何手动任务,则执行该过程的过程可以称为网络自动化。

一些Web自动化任务

您可以想到很多东西,但是这里有一些受欢迎的东西,

表格填写

顾名思义,表单填写意味着自动化与Web表单的手动交互。这种交互可能是输入文本,选择单选按钮,勾选复选框等。为什么要使其自动化?好吧,可能有很多原因。例如,我曾经使大学图书馆门户网站的登录过程自动化,从而制作了一个CLI实用程序,它可以对懒惰的怪胎执行订阅续订,罚款等操作(源代码,请不要为我判断代码,是几年前)。另一个原因可能是您工作中的大部分时间都花在了填写这些冗余表格中的冗余细节上,因此您可能希望自动化这些工作流程。说到工作流程,

创建工作流程

这是我最喜欢的Web自动化用例。您可以将一堆自动化片段组合在一起,以进行以下操作:
• 定期访问您喜欢的墙纸站点,查看是否添加了任何新墙纸(如果有),然后下载它们并将其添加到活动墙纸集中。我对Quotefancy有一个类似的脚本(源代码)。
• 经常跟踪网络上的某些新主题,并根据新闻情绪触发一些操作。这种设置在股票高频交易,加密货币等系统中可能有用。
• 搜索所有图像(在不同图像源上),鸣叫,与关键字相关的趋势,并以用户友好的方式显示它们。这实际上是我的实习项目之一,在那里我创建了一个仪表板,以便能够加快趋势主题新闻视频的生成过程。
• 希望有更多这样的用例,希望您能理解。

自动化测试

测试是Web自动化的一个非常流行的用例。当您拥有大型Web应用程序时,这几乎是必需的。作为开发人员,您想针对要开发的Web功能的功能行为编写测试用例,以便可以确保它按规范运行。在正式世界中,这也称为“质量保证”或(QA)。另外,您还需要在测试套件中累积类似的测试,这样,每次添加新功能时,都可以确保添加新功能不会更改任何现有的“预期”行为。更大的计划。松散地说,此过程称为回归测试,如果您在整个用户旅程中对其进行仿真,则可以将其称为端到端测试。尝试全面地模拟和测试所有方案,然后创建404页)。

网页抓取

简单来说,Web抓取是从网站提取数据的行为。数据可以用于多种目的。网站所有者和开发人员在合法的灰色地带之间经常玩猫捉老鼠的游戏。一方面,网站所有者以验证码,授权机制等形式在其内容周围设置围栏,另一方面,开发人员正在提出绕过这些围栏并提取所需数据的方法从网站。您可能有不同的原因需要从其他网站提取和组织数据,例如进行一些分析或将其用作某些业务逻辑的输入(例如,在您的网站上显示亚马逊某产品的价格)。

Web自动化的关键在于,您要找到一种让计算机代替人工来完成那些重复而繁琐的任务的方法。

旁注:Web自动化(即使在AI的协助下)也不等同于从事工作的计算机;这更像是让人们解放出来,专注于更具创造性的任务(例如使更多的事情自动化)。

过去和现在;Web自动化的前景

因此,您可能会问,人们使用(或一直使用)进行网络自动化的工具是什么?

好的,程序员已经在他们的程序中依靠模拟网络来实现他们想要的东西。典型的一系列步骤是向服务器发出请求,解析响应,确保响应是否符合预期(如果是出于测试目的),或者全部通过程序根据响应采取操作。现在提供了高级库和框架,可简化编写这些自动化脚本时程序员的工作。例如,Selenium是一个非常流行的浏览器自动化库,支持大多数流行语言的API。

对于非技术为核心的企业,也有像公司import.io,scrapinghub等提供解决方案来管理从网络,整个数据提取的管道。一些公司还希望了解社交媒体上的消费者情绪或了解竞争对手的消费者情绪,并且有些服务可以让您单击几下即可设置这种监视系统。

对于不那么友好代码(并且可能出于不同原因想要自动化)的个人,可以使用SaaS解决方案来创建工作流。例如,检查Zapier,Huginn和IFTTT(如果这样,那么检查)。有些工作流本身并不直接与Web交互,而是依赖于REST API,但是最终目标仍然是相同的,自动化!更不用说,有许多公司的生命线仅仅是网络自动化(例如,考虑产品和价格比较服务或跨浏览器测试解决方案)。

使用Python和Javascript进行网络自动化

好的,现在是一个重要的问题,“鉴于我知道Python或Javascript,我该如何使用它们进行Web自动化?”。

常用用法

使用库和框架

创建和使用库的动机是最大程度地减少样板,而不是重新发明轮子。通常,您将使用的库将提供以下一项或多项功能,

• 发出网络请求通用协议的功能。
• 网络请求的常见技巧,例如重试,使用代理,处理重定向等。
• 解析常见响应格式(包括HTML,JSON,XML等)的功能。
• 能够有效地在解析的响应中搜索所需的信息,并将其提取到本地语言的数据容器中。

例如,请求被广泛用于处理Python中的HTTP请求,而Javascript中的类似库是axios。Python具有用于解析和提取HTML和XML文件中的数据的beautifulsoup,Javascript具有cheerio。诸如scrapy之类的框架将抓取提升到了另一个层次(库和框架之间的区别)。我知道Javascript的更接近的替代方法是node-crawler。

使用Selenium之类的Web浏览器自动化套件

你可能感兴趣的:(Web自动化,python,网页抓取,Python,JavaScript,Selenium,Web自动化)