广州市网站建设 乾图信息科技网站前端是什么

张小明 2025/12/31 19:30:14
广州市网站建设 乾图信息科技,网站前端是什么,设计个网站要多少钱,企业信用公示信息网官网贵州大家好#xff0c;我是jobleap.cn的小九。 Playwright 是微软推出的新一代自动化测试/爬虫框架#xff0c;支持 Chromium、Firefox、WebKit 三大浏览器#xff0c;提供同步/异步 API#xff0c;具备自动等待、强大的元素定位、网络拦截等核心能力。本文将从环境搭建到综合实…大家好我是jobleap.cn的小九。Playwright 是微软推出的新一代自动化测试/爬虫框架支持 Chromium、Firefox、WebKit 三大浏览器提供同步/异步 API具备自动等待、强大的元素定位、网络拦截等核心能力。本文将从环境搭建到综合实战全面串联 Playwright 的常用 API帮助你快速掌握其核心用法。一、环境搭建1. 安装 Playwright 核心库pipinstallplaywright2. 安装浏览器驱动Playwright 需要对应浏览器的驱动文件执行以下命令自动安装 Chromium、Firefox、WebKit也可指定单一浏览器# 安装所有浏览器playwrightinstall# 仅安装 Chromium常用playwrightinstallchromium3. 验证安装fromplaywright.sync_apiimportsync_playwrightwithsync_playwright()asp:browserp.chromium.launch(headlessFalse)# 启动有头浏览器pagebrowser.new_page()page.goto(https://www.baidu.com)print(page.title())# 输出百度一下你就知道browser.close()二、核心概念必懂Playwright 的核心层级关系Playwright→Browser→BrowserContext→PageBrowser浏览器实例对应真实浏览器进程支持多浏览器Chromium/Firefox/WebKit。BrowserContext浏览器上下文类似隐身窗口隔离的环境一个 Browser 可创建多个 Context。Page页面对应浏览器标签页一个 Context 可创建多个 Page。三、常用 API 详解与实战1. 浏览器启动与配置Browser API核心方法playwright.chromium.launch()Firefox/webkit 同理常用参数headless是否无头模式默认 True无界面。slow_mo慢动作执行单位 ms便于调试。args浏览器启动参数如窗口大小、禁用图片加载。timeout启动超时时间默认 30000 ms。fromplaywright.sync_apiimportsync_playwrightwithsync_playwright()asp:# 启动 Chromium 有头模式窗口大小 1920x1080慢动作 500msbrowserp.chromium.launch(headlessFalse,slow_mo500,args[--window-size1920,1080,--disable-images]# 禁用图片加载)# 创建上下文可配置视口、超时、代理等contextbrowser.new_context(viewport{width:1920,height:1080},timeout10000,# 上下文级别超时user_agentMozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0 Safari/537.36)# 创建页面pagecontext.new_page()page.goto(https://www.baidu.com)# 关闭资源建议用 with 上下文自动关闭此处手动演示page.close()context.close()browser.close()2. 页面基础操作Page API1导航与刷新goto(url, wait_until)导航到指定 URLwait_until可选load页面加载完成、domcontentloadedDOM 加载完成、networkidle网络空闲。reload()刷新页面。go_back()/go_forward()前进/后退。# 导航到百度等待网络空闲适合异步加载页面page.goto(https://www.baidu.com,wait_untilnetworkidle)# 刷新页面page.reload()# 后退/前进page.go_back()page.go_forward()# 获取页面信息print(页面标题,page.title())print(页面URL,page.url)print(页面内容,page.content())# 获取整个页面 HTML2窗口控制# 设置页面大小page.set_viewport_size({width:1200,height:800})# 最大化窗口page.set_viewport_size(page.viewport_size())# 或通过浏览器 args 设置# 截图整页/元素page.screenshot(pathfull_page.png,full_pageTrue)# 整页截图page.locator(#su).screenshot(pathbutton.png)# 元素截图3. 元素定位核心Playwright 推荐语义化定位优先 CSS/XPath 定位支持 8 种定位方式优先级从高到低定位方式API 示例适用场景按角色Rolepage.get_by_role(button, name百度一下)按钮、输入框等可访问性元素按文本page.get_by_text(百度一下)固定文本的元素按标签Labelpage.get_by_label(搜索)输入框的标签按占位符page.get_by_placeholder(请输入搜索内容)输入框占位符按 Alt 文本page.get_by_alt_text(百度logo)图片元素按 Title 属性page.get_by_title(百度首页)带 title 的元素按测试 IDpage.get_by_test_id(search-btn)自定义># 语义化定位推荐search_inputpage.get_by_placeholder(请输入搜索内容)# 按占位符search_btnpage.get_by_role(button,name百度一下)# 按角色名称# CSS 定位兼容传统方式search_inputpage.locator(#kw)# ID 选择器search_btnpage.locator(.btn-self)# 类选择器# XPath 定位search_inputpage.locator(//input[idkw])4. 元素交互Page/Locator API1基础交互fill(text)输入文本清空原有内容。type(text, delay)模拟键盘逐字符输入带延迟。click()点击元素自动等待元素可点击。hover()悬停。dblclick()双击。# 输入搜索内容清空原有内容search_input.fill(Playwright Python 教程)# 模拟键盘输入逐字符延迟 100mssearch_input.type(Playwright Python 教程,delay100)# 点击搜索按钮search_btn.click()# 悬停到导航栏page.locator(#nav-top).hover()2表单操作check()/uncheck()勾选/取消复选框。select_option()选择下拉框。press(key)按键操作如 Enter、CtrlA。# 复选框page.locator(#agree).check()# 勾选page.locator(#agree).uncheck()# 取消# 下拉框按值/标签/索引page.locator(#city).select_option(valuebeijing)# 按值page.locator(#city).select_option(label北京)# 按标签page.locator(#city).select_option(index0)# 按索引# 按键操作search_input.press(Enter)# 按回车搜索page.press(CtrlA)# 全选页面内容page.press(Backspace)# 删除选中内容5. 等待机制避免硬等待Playwright 自带自动等待操作元素时等待元素可见、可操作也支持手动等待1显式等待# 等待元素可见超时 5 秒page.locator(#kw).wait_for(statevisible,timeout5000)# 等待元素可点击page.locator(#su).wait_for(stateenabled)# 等待页面加载状态page.wait_for_load_state(networkidle)# 等待自定义条件如标题包含指定内容page.wait_for_function(document.title.includes(Playwright))2超时配置# 页面级别默认超时所有操作生效page.set_default_timeout(5000)# 单个操作超时覆盖全局page.locator(#kw).click(timeout3000)6. 数据提取1元素数据提取# 获取元素文本含隐藏文本textpage.locator(h3).first.text_content()# 获取可见文本visible_textpage.locator(h3).first.inner_text()# 获取属性值hrefpage.locator(a).first.get_attribute(href)# 获取所有匹配元素的文本列表all_titlespage.locator(h3).all_text_contents()print(所有标题,all_titles)2录屏需上下文配置# 创建上下文时指定录屏目录contextbrowser.new_context(record_video_dir./videos/)page.goto(https://www.baidu.com)context.close()# 关闭后自动生成视频文件7. 网络拦截与请求处理Playwright 可拦截、修改、模拟网络请求/响应适用于爬虫反爬、接口测试。# 拦截所有图片请求中止加载提升速度defhandle_image_route(route):route.abort()# 中止请求# 也可模拟响应route.fulfill(status200, bodymock image)page.route(**/*.{png,jpg,jpeg},handle_image_route)# 等待特定请求并获取参数requestpage.wait_for_request(https://www.baidu.com/s)print(请求方法,request.method)print(请求参数,request.post_data)# 等待特定响应并解析内容responsepage.wait_for_response(https://www.baidu.com/s)print(响应状态码,response.status)print(响应JSON,response.json())# 接口返回JSON时解析8. 多标签页/多上下文操作1多标签页# 打开新标签页page1context.new_page()page1.goto(https://www.baidu.com)page2context.new_page()page2.goto(https://www.github.com)# 切换标签页page2.bring_to_front()# 获取所有标签页pagescontext.pagesprint(标签页数量,len(pages))2多上下文隔离环境# 上下文1模拟用户Acontext1browser.new_context()page1context1.new_page()page1.goto(https://www.taobao.com)# 上下文2模拟用户B隔离Cookiecontext2browser.new_context()page2context2.new_page()page2.goto(https://www.taobao.com)9. 弹窗处理Alert/Confirm/PromptPlaywright 可监听并处理浏览器原生弹窗# 监听 Alert 弹窗自动接受page.on(dialog,lambdadialog:dialog.accept())# 监听 Confirm 弹窗根据消息决定接受/取消page.on(dialog,lambdadialog:dialog.accept()if确认indialog.message()elsedialog.dismiss())# 监听 Prompt 弹窗输入内容并接受page.on(dialog,lambdadialog:dialog.accept(prompt_text测试内容))# 触发弹窗演示用page.evaluate(alert(这是一个Alert弹窗))page.evaluate(confirm(确认删除))page.evaluate(prompt(请输入姓名))四、综合实战电商商品信息爬取需求爬取京东“Python编程书籍”第一个商品的名称、价格、评价数并截图保存。fromplaywright.sync_apiimportsync_playwrightdefcrawl_jd_goods():withsync_playwright()asp:# 启动浏览器browserp.chromium.launch(headlessFalse,slow_mo300)contextbrowser.new_context(viewport{width:1920,height:1080})pagecontext.new_page()try:# 1. 导航到京东首页page.goto(https://www.jd.com,wait_untilnetworkidle)# 2. 搜索商品search_inputpage.get_by_placeholder(家用电器手机数码电脑办公)search_input.fill(Python编程从入门到实践)search_input.press(Enter)# 3. 等待搜索结果加载点击第一个商品page.wait_for_load_state(networkidle)first_goodspage.locator(.gl-item .p-name a).first first_goods.click()# 4. 切换到商品详情页新标签页page.wait_for_event(popup)goods_pagecontext.pages[-1]# 最后一个标签页为详情页goods_page.bring_to_front()goods_page.wait_for_load_state(networkidle)# 5. 提取商品信息京东标签可能更新需按需调整goods_namegoods_page.locator(.sku-name).inner_text().strip()goods_pricegoods_page.locator(.price).first.inner_text().strip()comment_countgoods_page.locator(#comment-count).inner_text().strip()# 6. 输出并截图print(*50)print(商品名称,goods_name)print(商品价格,goods_price)print(评价数,comment_count)print(*50)goods_page.screenshot(pathjd_goods.png,full_pageTrue)exceptExceptionase:print(爬取出错,e)finally:browser.close()if__name____main__:crawl_jd_goods()五、高级技巧与注意事项1. 异步 API适合高并发Playwright 支持异步编程核心替换sync_playwright为async_playwrightimportasynciofromplaywright.async_apiimportasync_playwrightasyncdefasync_demo():asyncwithasync_playwright()asp:browserawaitp.chromium.launch(headlessFalse)pageawaitbrowser.new_page()awaitpage.goto(https://www.baidu.com)print(awaitpage.title())awaitbrowser.close()asyncio.run(async_demo())2. 反爬规避设置真实user_agent上下文配置。添加随机延迟slow_mo或time.sleep慎用。使用代理 IP上下文配置proxy{server: http://ip:port}。避免高频操作模拟真人行为悬停、滚动。3. 测试框架集成Playwright 可与 pytest 集成pytest-playwright实现自动化测试pipinstallpytest-playwright4. 注意事项避免使用time.sleep优先用 Playwright 内置等待。元素定位优先语义化方式get_by_role减少 CSS/XPath 维护成本。无头模式下部分页面渲染可能不同调试时用有头模式。浏览器驱动版本需与 Playwright 版本匹配playwright install自动适配。六、总结Playwright 凭借自动等待、跨浏览器、强大的定位与网络拦截能力成为 Python 自动化/爬虫领域的主流工具。本文串联了浏览器启动、页面操作、元素定位、交互、数据提取、网络拦截等核心 API并通过实战案例验证了用法。掌握这些 API 后可高效完成网页自动化测试、数据爬取、表单自动提交等场景的开发。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站的百度百科怎么做营销页面设计

实邦电子:电路板开发领域的专业典范公司简介:专注电路板开发的实力企业实邦电子目前办公地点位于上海市浦东新区瑞庆路528号张江医疗器械产业基地11栋甲号5楼。公司在医疗器械电子方面拥有非常丰富的经验,在电路板开发领域也展现出了强大的专…

张小明 2025/12/31 18:40:37 网站建设

做外贸哪些国外网站可以推广网红营销平台

Linux硬件问题及解决方案全解析 在Linux系统的使用过程中,硬件配置和管理是至关重要的环节。虽然大多数Linux发行版在安装时能自动检测并配置硬件,但有时仍需手动操作。本文将着重探讨Linux系统中几个关键的硬件问题,包括交换空间的管理和基本打印功能的实现。 交换空间的…

张小明 2025/12/28 4:34:59 网站建设

南通高端网站设计建设eclipse网站开发

Random类Random 类用于生成伪随机数,位于 System 命名空间。它的核心机制是基于一个种子值 (seed),通过算法生成看似随机的数列。相同种子会生成相同的随机数序列,这在需要可重现的随机场景中很有用。//1.1创建一个随机数队列,并指定种子 Ran…

张小明 2025/12/28 8:17:07 网站建设

dw做游戏网站代码建设网站的页面设计

国际版JAVA任务悬赏平台通过高性能技术架构、智能化匹配算法与全球化能力设计,可实现“一键发布,全球抢单”的核心功能,其技术实现与功能优势如下:一、技术架构:支撑全球高并发与多端协同后端性能引擎采用 Spring Boot…

张小明 2025/12/28 0:13:30 网站建设

网站后台源代码更改网站建设 不违背

HuggingFace镜像网站国内加速源配置助力Anything-LLM快速启动 在AI应用开发日益普及的今天,越来越多开发者尝试将大语言模型(LLM)落地到实际业务场景中。然而,一个看似简单的“下载模型”操作,却常常成为中国大陆用户…

张小明 2025/12/28 4:07:28 网站建设

3合1网站建设网站建设公司厂

Windows微信群发工具终极指南:3分钟搞定批量消息发送 【免费下载链接】WeChat-mass-msg 微信自动发送信息,微信群发消息,Windows系统微信客户端(PC端 项目地址: https://gitcode.com/gh_mirrors/we/WeChat-mass-msg 还在为…

张小明 2025/12/28 3:32:50 网站建设