element

python+selenium遍历某一个标签中的内容

泄露秘密 提交于 2020-12-19 06:13:43
一、python+selenium遍历某一个标签中的内容 举个例子:我要获取列表标签<li></li>的内容 根据python+selenium定位到列表整体,使用for循环获取列表文本;可用于校验列表是否存在你需要的文本内容 1.获取内容不包含嵌套层列表 给出代码: from selenium import webdriver import time d = webdriver.Chrome() d.maximize_window() # 窗口最大化 ###登录某网站 d.get( ' http://xx.xxx.xx.xx:xxxx/ ' ) d.find_element_by_xpath( ' //*[@id="userName"] ' ).send_keys( ' xxx ' ) d.find_element_by_xpath( ' //*[@id="userPwd"] ' ).send_keys( ' xxx ' ) d.find_element_by_xpath( ' //*[@id="login"] ' ).click() time.sleep( 2 ) ###切换表单,进入到操作页面 d.find_element_by_xpath( ' //*[@id="menu_ul"]/li[5]/a ' ).click() d.switch_to_frame( '

python排序 基数排序

此生再无相见时 提交于 2020-12-19 03:02:02
算法思想 基数排序通过按位比较(一般从最低位开始)将元素按照最低位的数放到10个桶中,当所有的元素都这样被处理一次后,在按从0到9的顺序将每个桶的元素再取出来(不关注其他位的,只关注当前位的)这样就完成了所有元素最低位的有序性,然后不断的重复上面的步骤,知道所有元素的最高位都经过处理了。 算法步骤 初始化桶,共有10个,分别存放当前位位0-9的元素 从元素的最后一位开始,按照最后一位的数字将其放到相应的同元素中。对列表中的每个元素都进行上面的操作后,从0号桶开始,将元素从桶中取出来,这样就完成了一个位数的排序 重复上一过程,如果发现元素最高位已经被处理过,就把他添加到最终的结果中 算法实现 算法的主要问题在于对当前位的获取中 对于正数 (element//divisor)%10#结果是当前位上的数#divisor代表当前位,个位是1,十位是10,百位是100#//是向下取整的意思   如过element//divisor结果为0 就代表实际结果小于1了,即当前位已经是0了 对于负数 collection[j]//i==-1#代表是负数   取得当前位 (10-math.ceil(element/divisor)%10)%10#math.ceil()是向上取整 #最后一个%10是防止前面结果=10的情况出现 算法实现 def radix_sort3(collection): '''

7.Vue-Quill-Editor图片插入自定义

一世执手 提交于 2020-12-19 02:55:02
Vue-Quill-Editor图片插入自定义 前言: 因为在项目中前端采用了Vue来实现,正好用到了富文本编辑器这一块,于是,经过技术上的选择,决定使用Vue-Quill-Editor。 使用的过程相对简单,但是图片插入时,保留的是base64二进制形式,会导致数据库字段太长,存储不易。 所以再三斟酌,决定使用Element-UI的Upload插件来进行图片的上传。 代码: <template> <div class="bg"> <!-- 图片上传组件辅助--> <el-upload class="avatar-uploader" :action="serverUrl" :headers="header" :show-file-list="false" :on-success="uploadSuccess" :on-error="uploadError" :before-upload="beforeUpload"> </el-upload> <quill-editor class="editor" v-model="content" ref="myQuillEditor" :options="editorOption" @blur="onEditorBlur($event)" @focus="onEditorFocus($event)" @change=

彻底搞懂CSS伪类选择器:is、not

纵饮孤独 提交于 2020-12-19 01:59:03
本文介绍一下Css伪类:is和:not,并解释一下is、not、matches、any之前的关系 :not The :not() CSS pseudo-class represents elements that do not match a list of selectors. Since it prevents specific items from being selected, it is known as the negation pseudo-class. 以上是MDN对not的解释 单从名字上我们应该能对它有大概的认知,非选择,排除括号内的其它元素 最简单的例子,用CSS将div内,在不改变html的前提下,除了P标签,其它的字体颜色变成蓝色, <div> <span>我是蓝色</span> <p>我是黑色</p> <h1>我是蓝色</h2> <h2>我是蓝色</h2> <h3>我是蓝色</h3> <h4>我是蓝色</h4> <h5>我是蓝色</h5> </div> 之前的做法 div span,div h2,div h3, div h4,{ color: blue; } not写法 div:not(p){ color: blue; } 从上面的例子可以明显体会到not伪类选择器的作用 下面升级一下,问:将div内除了span和p,其它字体颜色变蓝色 div:not

426. Convert Binary Search Tree to Sorted Doubly Linked List把bst变成双向链表

北城以北 提交于 2020-12-18 06:52:05
[抄题]: Convert a BST to a sorted circular doubly-linked list in-place. Think of the left and right pointers as synonymous to the previous and next pointers in a doubly-linked list. Let's take the following BST as an example, it may help you understand the problem better: We want to transform this BST into a circular doubly linked list. Each node in a doubly linked list has a predecessor and successor. For a circular doubly linked list, the predecessor of the first element is the last element, and the successor of the last element is the first element. The figure below shows the circular doubly

LeetCode 426. Convert Binary Search Tree to Sorted Doubly Linked List

狂风中的少年 提交于 2020-12-18 04:09:00
原题链接在这里: https://leetcode.com/problems/convert-binary-search-tree-to-sorted-doubly-linked-list/ 题目: Convert a BST to a sorted circular doubly-linked list in-place. Think of the left and right pointers as synonymous to the previous and next pointers in a doubly-linked list. Let's take the following BST as an example, it may help you understand the problem better: We want to transform this BST into a circular doubly linked list. Each node in a doubly linked list has a predecessor and successor. For a circular doubly linked list, the predecessor of the first element is the last element, and the

Spring 中 @Component、@Service 等注解如何被解析?

守給你的承諾、 提交于 2020-12-18 01:22:51
作者:温安适 来源:http://8rr.co/EjqL 前言 @Component和@Service都是工作中常用的注解,Spring如何解析? 1.@Component解析流程 找入口 Spring Framework2.0开始,引入可扩展的XML编程机制,该机制要求XML Schema命名空间需要与Handler建立映射关系。 该关系配置在相对于classpath下的/META-INF/spring.handlers中。 如上图所示 ContextNamespaceHandler对应context:... 分析的入口。 找核心方法 浏览ContextNamespaceHandler 在parse中有一个很重要的注释 // Actually scan for bean definitions and register them. ClassPathBeanDefinitionScanner scanner = configureScanner(parserContext, element); 大意是: ClassPathBeanDefinitionScanner#doScan是扫描BeanDefinition并注册的实现 。 ClassPathBeanDefinitionScanner 的源码如下: protected Set<BeanDefinitionHolder>

推荐系统中的注意力机制——阿里深度兴趣网络(DIN)

≡放荡痞女 提交于 2020-12-18 00:54:12
参考: https://zhuanlan.zhihu.com/p/51623339 https://arxiv.org/abs/1706.06978 注意力机制顾名思义,就是模型在预测的时候,对用户不同行为的注意力是不一样的,“相关”的行为历史看重一些,“不相关”的历史甚至可以忽略。那么这样的思想反应到模型中也是直观的。 如果按照之前的做法,我们会一碗水端平的考虑所有行为记录的影响,对应到模型中就是我们会用一个average pooling层把用户交互过的所有商品的embedding vector平均一下形成这个用户的user vector,机灵一点的工程师最多加一个time decay,让最近的行为产生的影响大一些,那就是在做average pooling的时候按时间调整一下权重。 上式中, 是用户的embedding向量, 是候选广告商品的embedding向量, 是用户u的第i次行为的embedding向量,因为这里用户的行为就是浏览商品或店铺,所以行为的embedding的向量就是那次浏览的商品或店铺的embedding向量。 因为加入了注意力机制, 从过去 的加和变成了 的加权和, 的权重 就由 与 的关系决定,也就是上式中的 ,不负责任的说,这个 的加入就是本文70%的价值所在。 那么 这个函数到底采用什么比较好呢?看完下面的架构图自然就清楚了。 => 如何生成注意力

Javascript中的内存泄漏

↘锁芯ラ 提交于 2020-12-17 21:00:26
最新博客站点: 欢迎来访 一、内存泄漏 由于某些原因不再需要的内存没有被操作系统或则空闲内存池回收。编程语言中有多种管理内存的方式。这些方式从不同程度上会减少内存泄漏的几率,高级语言嵌入了一个名为垃圾收集器的软件,其工作是跟踪内存分配和使用,以便找到不再需要分配内存的时间,在这种情况下,它将自动释放它。然而,该过程是近似的,因为知道是否需要某些存储器的一般问题是不可判定的(不能通过算法来解决)。 1. 循环引用导致的内存泄漏 当两个对象相互引用时,会形成一个循环引用,使每个对象的引用计数为1,在纯粹的垃圾收集系统中,循环引用不是问题:如果任何其他对象都不引用所涉及的对象,则两者都是会被视为垃圾而回收。但是,在引用计数系统中,两个对象都不能被销毁,因为引用计数永远不会减到零。在使用垃圾回收和引用计数的混合系统中,由于系统无法识别循环引用而导致泄漏。在这种情况下,DOM对象和Javascript对象都不会被破坏。 <html> <body> <script type = "text/javascript"> document.write( "Circular referances between Javascript and DOM!" ); var obj; window.onload = function () { obj = document.getElementById(

js内存泄漏

試著忘記壹切 提交于 2020-12-17 20:59:36
1、JS的回收机制 JavaScript垃圾回收的机制很简单:找出不再使用的变量,然后释放掉其占用的内存,但是这个过程不是实时的,因为其开销比较大,所以垃圾回收系统(GC)会按照固定的时间间隔,周期性的执行。 到底哪个变量是没有用的?所以垃圾收集器必须跟踪到底哪个变量没用,对于不再有用的变量打上标记,以备将来收回其内存。用于标记的无用变量的策略可能因实现而有所区别,通常情况下有两种实现方式:标记清除和引用计数。引用计数不太常用,标记清除较为常用。 2、标记清除 js中最常用的垃圾回收方式就是标记清除。当变量进入环境时,例如,在函数中声明一个变量,就将这个变量标记为“进入环境”。从逻辑上讲,永远不能释放进入环境的变量所占用的内存,因为只要执行流进入相应的环境,就可能会用到它们。而当变量离开环境时,则将其标记为“离开环境”。 function test(){ var a=10; // 被标记,进入环境 var b=20; // 被标记,进入环境 } test(); // 执行完毕之后a、b又被标记离开环境,被回收 3、引用此时 引用计数的含义是跟踪记录每个值被引用的次数。当声明了一个变量并将一个引用类型值(function object array)赋给该变量时,则这个值的引用次数就是1。如果同一个值又被赋给另一个变量,则该值的引用次数加1。相反