好用的爬虫软件(免费网络爬虫工具)

电视剧剧情 2025-08-17 13:44www.humatrope.cn剧情简介

微软新宠Playright:自动化测试与爬虫利器

在日新月异的数字时代,网页自动化测试和网络爬虫技术日益受到关注。微软在2020年初推出的新一代自动化测试工具Playright,以其强大的功能和简洁的API吸引了众多开发者的目光。虽然诞生较晚,但现在已然成为自动化领域的热门工具。

Playright不仅支持当前所有主流浏览器,包括Chrome和Edge(基于Chromium)、Firefox以及Safari(基于WebKit),还提供完善的自动化控制API。无论是桌面还是移动端,Headless模式还是非Headless模式,Playright都能轻松应对。其独特的设备模拟技术使得在移动Web浏览器中测试响应式Web应用程序成为可能。

一、Playright特色

1. 跨浏览器支持:无论是Chromium、Firefox还是WebKit,Playright都能轻松驾驭。

2. 简洁强大的API:提供一系列简洁的API供开发者使用,大大简化了页面操作的复杂性。

3. 自动等待机制:当页面加载时,Playright能自动等待对应的节点加载完毕,使得编写脚本更为简便。

二、安装与初始化

要使用Playright,首先需要确保Python版本达到3.7及以上。安装过程非常简单,直接使用pip3即可。安装完成后,Playright会自动配置Chromium、Firefox等浏览器及相应的驱动,无需额外操作。具体的安装说明可参考官方提供的链接。

三、基本使用

Playright支持两种编写模式:异步模式和同步模式。下面以一个同步模式的简单例子来介绍其使用方法。

我们导入sync_playright方法并调用它,得到一个PlayrightContextManager对象,即浏览器上下文管理器。接着,我们通过调用其chromium、firefox、webkit属性依次创建浏览器实例,然后通过launch方法启动浏览器。注意,如果不将headless参数设置为False,浏览器将默认在无头模式下运行,我们看不到任何界面。

启动的Browser对象可以用来执行各种自动化操作。例如,通过ne_page方法新建选项卡,然后使用goto方法加载页面,这里以百度首页为例。通过screenshot方法保存页面截图。

Playright作为微软推出的新一代自动化测试工具,凭借其强大的功能和简洁的API,在网络爬虫领域也展现出了巨大的潜力。无论是网页自动化测试还是数据抓取,Playright都能为我们提供极大的便利。随着其不断发展和完善,相信未来会有更多的开发者加入到Playright的大家庭中。在编程的世界里,我们经常需要模拟浏览器的行为,与网页进行交互,获取数据,甚至进行网页截图。Playright 这款工具为我们提供了强大的功能,让我们能够轻松实现这些操作。

我们调用了 title 方法,这个方法返回了页面的标题,也就是 HTML 中 title 节点中的文字,也就是我们在浏览器选项卡上看到的文字。我们将这个结果打印到了控制台,以便查看。

接下来,我们启动了三个不同的浏览器——Chromium、Firefox 和 Webkit,每个浏览器都加载了百度这个页面。页面加载完成后,我们进行了截图,并在控制台查看了结果。当前目录下会生成三个截图文件,分别是三个浏览器加载的百度首页。

除了同步模式,Playright 还提供了异步的 API。如果我们的项目使用了 asyncio,那么应该使用异步模式。异步模式的写法与同步模式类似,主要是在导入时使用的是 async_playright 方法,并添加了 async/await 关键字的使用。

Playright 还提供了一个非常强大的功能,那就是可以录制我们在浏览器中的操作并自动生成代码。这个功能使得我们甚至不需要编写任何代码。通过 playright 命令行调用 codegen 就可以实现这个功能。我们可以选择输出的代码文件名、使用的语言、模拟的浏览器等参数。

例如,我们启动了一个 Firefox 浏览器,并将操作结果输出到 script.py 文件。在浏览器中进行的任何操作,比如打开百度、点击搜索框并输入 nba、点击搜索按钮等,都会实时生成对应的代码。操作结束后,关闭浏览器,Playright 会生成一个包含我们操作对应代码的 script.py 文件。仔细观察这个生成的代码,我们会注意到有一个 context 变量在其中起到了关键作用。那么这个 context 究竟是做什么的呢?

context 是 Playright 提供的一个上下文管理器,它可以帮助我们管理 Playright 的资源。无论运行期间是否发生异常,它都能确保资源的自动分配和释放。在生成的代码中,我们通过 broser 调用了 ne_context 方法生成了 context 变量,然后通过这个变量调用了 ne_page 方法。这样我们就可以在 context 的管理下安全地进行浏览器的操作。

Playright 是一款非常强大的工具,它提供了丰富的 API 和强大的功能,使得我们可以轻松模拟浏览器的行为,与网页进行交互,获取数据,进行网页截图等。而且它的codegen功能使得我们可以录制操作并自动生成代码,大大提高了开发效率。而 context 的存在,则为我们提供了资源的自动管理,使得我们的代码更加安全和稳定。深入理解Playright:模拟移动端浏览器与选择器应用

Playright,一个强大的自动化测试工具,允许我们模拟浏览器环境进行自动化测试。其中的BroserContext对象,就像是一个隐身模式的独立上下文环境,其运行资源是单独隔离的。在进行自动化测试时,为每个测试用例创建一个独立的BroserContext对象,可以确保各测试用例之间互不干扰。具体的API使用可以参考Playright的官方文档。

Playright的一大特色功能是对移动端浏览器的支持。我们可以模拟在iPhone 12 Pro Max的Safari浏览器上操作,手动设置定位,并打开地图进行截图。例如,我们可以选择故宫的经纬度,然后在Webkit浏览器中通过geolocation参数进行初始化。

使用PlayrightContextManager对象的devices属性,我们可以指定一台移动设备,比如iPhone 12 Pro Max。我们也可以使用BroserContext对象来模拟移动端浏览器,初始化设备信息、语言、权限、位置等。通过这个对象,我们可以创建一个移动端的BroserContext,通过geolocation参数传入经纬度,通过permissions参数传入权限信息。

接下来,我们可以使用这个BroserContext对象来模拟浏览器的操作。例如,创建一个新页面,跳转到高德地图,并等待页面加载完成。加载完成后,我们可以获取当前页面的截图。

Playright的操作API与PC版浏览器完全相同,可以方便地实现移动版浏览器的模拟和设置。

除了模拟浏览器环境,Playright还提供了丰富的选择器功能。这些选择器不仅支持CSS选择器和XPath,还扩展了一些方便好用的规则,比如直接根据文本内容进行筛选。

例如,我们可以使用"text="这样的语法来选择特定的文本节点。我们还可以结合CSS选择器和文本值进行筛选,比如使用"has-text"来选择包含特定字符串的节点,或者使用"text"来选择文本值完全匹配的节点。

深入了解CSS选择器与节点关系

想要更精准地选择页面元素?结合节点关系来筛选是个不错的选择。想象一下,你想选择class为"item-description"的节点,同时这个节点还要包含一个class为"item-promo-banner"的子节点。这时,你可以使用“has”选择器轻松实现。

除此之外,你还可以利用相对位置关系来选择节点。比如,使用"right-of"可以指定位于某个节点右侧的节点。比如,你想选择一个input节点,而这个input节点要位于文本值为"Username"的节点的右侧,这样的选择就轻而易举。

XPath也是一款强大的工具。只需在开头指定"xpath=字符串",就能开启XPath表达式的使用。

关于选择器的用法和最佳实践,你可以参考官方文档。在这里,[

接下来,让我们来一些常用的操作方法。你是否曾经对浏览器的一些基本操作感到困惑?比如点击、输入等操作?这些都属于Page对象的API,你可以在[

其中,事件监听是一个特别有用的功能。Page对象提供了一个on方法,它可以用来监听页面中的各个事件,如close、console、load、request、response等。比如,你可以监听response事件,每次网络请求得到响应时都会触发这个事件。你可以设置相应的回调方法来获取Response的全部信息。

这个方法在实际应用中的价值不言而喻。以某个网站为例,其真实数据通过Ajax加载,还带有加密参数。但有了这个方法,想要截获Ajax请求简直易如反掌。只需稍作判定条件的调整,就能轻松输出对应的JSON结果。

除此之外,获取页面源码也是一项基本操作。只需通过content方法就能轻松获取页面的HTML代码。获取后,你可以使用工具提取所需信息。

至于页面点击操作,之前我们已经通过示例了解了click方法。这是一个非常实用的方法,用于模拟用户点击行为。你可以通过传入选择器来匹配想要点击的节点,如果匹配多个节点,则默认使用第一个节点。

等待节点可点击的检查结果,就像是在等待一个交通信号灯由红转绿。如果某个按钮暂时不可点击,我们会耐心等待它亮起绿灯,除非使用force参数这盏魔法灯,强行通过检查,实现点击操作。页面滚动也是必不可少的步骤,将目标节点呈现在视野中。这时,我们可以调用page对象的鼠标方法,精准点击节点的中心位置。如果指定了position参数,那么点击位置将按照你的要求来。

click方法拥有几个重要参数。click_count代表点击次数,默认值为1;timeout则是等待节点可点击的超时时间,默认是30秒;position参数则需要传入一个包含x和y属性的字典,代表点击位置相对于节点左上角的偏移量;force参数则是一个魔法开关,即使节点不可点击,也能强制执行点击操作,默认为False。

关于API设置参数的详细文档,你可以参考官方的文档链接:[链接地址](

除了对节点进行操作,我们还能进行文本输入。fill方法便是为此而生,它接受两个必传参数:selector和value。selector用于选择目标节点,value则是要输入的内容。还可以通过timeout参数设定节点等待的最长时间。

获取节点属性也是一项重要功能。通过get_attribute方法,我们可以轻松获取节点的各种属性。这个方法同样接受两个必传参数:selector和name。selector用于选择目标节点,name则是你想获取的属性名称。同样地,可以通过timeout参数设定节点等待的最长时间。

如果你想获取多个节点,可以使用query_selector_all方法。它会返回一个节点列表,你可以遍历这个列表,对每个节点进行操作或获取属性。示例代码展示了如何使用这个方法获取所有匹配的节点,并通过ElementHandle对象调用get_attribute方法获取节点属性,以及使用text_content方法获取节点文本。

获取单个节点则可以使用query_selector方法。如果匹配到多个节点,它只会返回第一个。示例代码展示了如何使用这个方法获取第一个匹配节点的信息。

还有一个实用的方法是route,它可以实现网络劫持和修改操作。通过这个方法,你可以修改request的属性,或者修改response的响应结果。示例代码展示了一个使用route方法的实例,通过匹配URL路径来取消包含.png或.jpg链接的请求,从而提高页面加载速度,提升爬取效率。观察运行结果,可以看到资源加载被成功拦截。

想象一下,我们有一个名为 custom_response.html 的 HTML 文件,里面包含了我们想要展示在网页上的内容。通过特定的方法,我们可以将这个文件的内容作为响应结果返回,而不需要改变 URL。这是一个怎样的神奇操作呢?

我们来定义这个 HTML 文件。给它一个名字,比如 custom_response.html,然后在这个文件中写入你想要展示的内容。接下来,我们要通过编程的方式,将这个文件的内容作为响应结果返回。

这里我们使用的是 Playright 这个工具。它是一个新一代 JavaScript 渲染页面的爬取利器,拥有强大的 API,使用起来非常简单,甚至拥有许多 Selenium 和 Pyppeteer 无法比拟的更好用的 API。

具体如何实现呢?我们可以通过 route 方法的 fulfill 功能来指定一个本地文件作为响应结果。这个本地文件就是我们刚才定义的 custom_response.html 文件。当请求到达时,我们不需要做任何处理,只需要指定这个文件,就可以将文件的内容作为响应结果返回。

运行代码后,你会发现 URL 还是不变的,但响应结果已经变成了我们修改的 HTML 代码。这就是 Playright 的强大之处,它让我们能够灵活地控制请求和响应的内容,从而适应各种场景和需求。

Playright 是一个功能强大、易于使用的工具,对于需要进行网页爬取和渲染的人来说,它是一个不可或缺的利器。通过修改响应内容,我们可以实现更多的功能,满足更多的需求。希望这篇文章能够帮助你了解 Playright 的基本用法,并能在实际项目中发挥它的作用。

上一篇:店铺在城市中心的位置风水也更好吗 下一篇:没有了

Copyright © 2019-2025 www.humatrope.cn 剧情简介 版权所有 Power by

剧情电视剧,剧情电影,韩国剧情片,剧情简介,欧美剧情片,分集剧情