当前位置: 首页 > news >正文

ico项目网站建设设计师做网站的流程

ico项目网站建设,设计师做网站的流程,建设银行app忘记登录密码,dedecms免费网站模板今天给大家推荐一款基于Python的网页自动化工具#xff1a;DrissionPage。这款工具既能控制浏览器#xff0c;也能收发数据包#xff0c;甚至能把两者合而为一#xff0c;简单来说#xff1a;集合了WEB浏览器自动化的便利性和 requests 的高效率。 一、DrissionPage产生背…今天给大家推荐一款基于Python的网页自动化工具DrissionPage。这款工具既能控制浏览器也能收发数据包甚至能把两者合而为一简单来说集合了WEB浏览器自动化的便利性和 requests 的高效率。 一、DrissionPage产生背景 实现网页自动化会有两类形式 直接向服务器发送请求数据包获取需要的数据模拟真实用户操作行为控制浏览器跟网页进行交互 前者轻量级速度快例如requests 库。但requests面对需要登录的网站时往往还要应付验证码、JS 混淆、签名参数等反爬手段门槛较高。若数据是由 JS 计算生成的还须重现计算过程开发效率不高。 而后者直接使用浏览器模拟用户行为如Selenium库可以很大程度上绕过这些坑但浏览器运行效率不高。 因此DrissionPag设计初衷是将它们合而为一能够在不同须要时切换相应模式并提供一种人性化的使用方法提高开发和运行效率。 为什么叫DrissionPag Selenium框架用于操作浏览器的对象叫 Driverrequests 用于管理请求连接的对象叫 Session因此Drission 就是它们两者的合体。在旧版本中是通过对 selenium 和 requests 的重新封装实现的。 但从 3.0 版开始作者另起炉灶用 chromium 协议自行实现了 selenium 全部功能从而摆脱了对 selenium 的依赖功能更多更强运行效率更高开发更灵活。 二、DrissionPage亮点特色 本库采用全自研的内核对比 selenium有以下优点 无 webdriver 特征不会被网站识别无需为不同版本的浏览器下载不同的驱动运行速度更快可以跨 iframe 查找元素无需切入切出iframe 看作普通元素获取后可直接在其中查找元素逻辑更清晰可以同时操作浏览器中的多个标签页即使标签页为非激活状态无需切换内置等待和自动重试功能。使不稳定的网络变得易于控制程序更稳定编写更省心允许反复使用已经打开的浏览器。无须每次运行从头启动浏览器调试超方便极简的语法规则。集成大量常用功能定位元素更加容易功能更强大稳定使用 POM 模式封装可直接用于测试便于扩展等等。。。 三、安装搭建 说了这么多相信很多人已经跃跃欲试了怎么快速搭建这套框架先要准备一些基础环境。 环境准备 操作系统Windows、Linux 或 Mac。python 版本3.6 及以上支持浏览器Chromium 内核如 Chrome 和 Edge 项目地址 https://gitee.com/g1879/DrissionPage使用 pip 安装 DrissionPage pip install DrissionPage另外在开始之前我们先进行一些简单设置。如果只使用收发数据包功能无须任何准备工作。 如果要控制浏览器须设置浏览器路径。程序默认设置控制 Chrome所以以下用 Chrome 作为演示。如果要使用 Edge 或其它 Chromium 内核浏览器设置方法是一样的。 设置浏览器路径 from DrissionPage.easy_set import set_paths set_paths(browser_pathr这里修改为您的Chrome浏览器exe文件路径)这段代码会记录 Chrome 浏览器路径到配置文件。由于路径设置只要运行一次即可不要写到正式程序里。一般建议新建一个临时 py 文件并输入以下代码填入您电脑里的 Chrome 浏览器 exe 文件路径然后执行。 四、实战一下 1、尝试启动浏览器 from DrissionPage import ChromiumPagepage ChromiumPage() page.get(https://www.baidu.com) 执行以下代码如果正常启动了浏览器并且访问了百度说明可直接使用跳过后面的步骤即可。 执行代码前如果已有打开的 Chrome 浏览器请关闭。 2、与selenium框架代码对比 #案例一用显性等待方式查找第一个文本包含 some text 的元素。 # 使用 selenium element WebDriverWait(driver).until(ec.presence_of_element_located((By.XPATH, //*[contains(text(), some text)])))# 使用 DrissionPage element page(some text)#案例二跳转到第一个标签页 # 使用 selenium driver.switch_to.window(driver.window_handles[0])# 使用 DrissionPage page.to_tab(0)# 案例三拖拽一个元素 # 使用 selenium ActionChains(driver).drag_and_drop(ele1, ele2).perform()# 使用 DrissionPage ele1.drag_to(ele2)以上代码实现一模一样的功能但DrissionPage代码明显更简洁优雅。 3、与requests框架代码对比 # 案例一获取元素内容 url https://baike.baidu.com/item/python# 使用 requests from lxml import etree headers {User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36} response requests.get(url, headers headers) html etree.HTML(response.text) element html.xpath(//h1)[0] title element.text# 使用 DrissionPage page WebPage(s) page.get(url) title page(tag:h1).text4、DrissionPage不同模式切换 例如用浏览器登录网站然后切换到 requests 读取网页。两者会共享登录信息。 from DrissionPage import WebPage from time import sleep# 创建页面对象默认 d 模式 page WebPage() # 访问个人中心页面未登录重定向到登录页面 page.get(https://gitee.com/profile) # 使用 selenium 输入账号密码登录 page.ele(id:user_login).input(your_user_name) page.ele(id:user_password).input(your_password\n) sleep(1)# 切换到 s 模式 page.change_mode() # 登录后 session 模式的输出 print(登录后title, page.title, \n) 五、小结 DrissionPage体验一番后虽然也发现了一些不足的地方但整得来讲很多设计理念还是非常值得借鉴的更多功能就留给大家去探索了项目文档地址 http://g1879.gitee.io/drissionpagedocs/
http://www.hkea.cn/news/14418853/

相关文章:

  • 在家自己做网站seo新站如何快速排名
  • 做网站主机要求淘宝网站建设流程
  • 国际电子商务网站建设网络规划设计师最难
  • 网站不收录怎么办学院网站建设目标
  • 如何制作产品网站模板网页设计找工作
  • 最大的网站建设公司建设职业注册中心网站
  • 网站首页不收录wordpress调用page
  • 苏州哪家做网站好网页美工实训心得
  • 建设网站软件下载网站推广的方法搜索引擎
  • 网站建设期中考试题有没有教如何做衣服的网站
  • 教师廉政建设学校网站信息友情链接导航
  • 网站备案时间就是正式上线时间吗做网站是如何实施的
  • 免费做网站的优缺点横栏网站建设
  • 长春网站建设公司哪家好免费单页网站模板
  • 焦作网站建设设计做直播网站前端
  • 临沂h5建站中国企业500强厉害吗
  • 质量好网站建设哪家便宜官方app下载安装
  • 网站建站维护运营网站域名费一年交多少
  • 网站开发(源代码)做网站必备
  • 深圳建设管理中心网站首页wordpress 创意
  • 网站建设与管理教程视频游戏广告联盟平台
  • 怎样用数据库做网站威海屋顶防水价格威海做防水网站
  • 域网站名分类汕头市营商环境建设监督局网站
  • 建网站潞城哪家强?提供免费建网站的网
  • 百度seo网站优化服务深圳建设网站
  • 凡科怎样免费做网站什么网站可以做设计赚钱吗
  • 网站设计费用多少钱网站链接锚点怎么做
  • 前端做一个网站需要些什么软件手机网站 方案
  • 中学生制作网站自建网站做网上超市可行吗
  • 网站建设与制作实验报告南宁做网站的公司有哪些