Python爬虫之selenium高级功能原文地址表单操作元素拖拽页面切换弹窗处理表单操作表单里面会有文本框、密码框、下拉框、登陆框等。这些涉及与页面的交互,比如输入、删除、点击等。前提是找到页面中的元素。例如下面有一个表单输入框:"text"name="passwd"id="passwd-id"/>获取这个元素的方法:element=driver.find_element_by_id("passwd-id")element=driver.find_ele
系统 2019-09-27 17:53:02 2011
一、冒泡排序冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。以上节选自维基百科代码实现:defbubble_sort(numberlist):length=len(numberlist)foriinrange(lengt
系统 2019-09-27 17:52:52 2011
前言学过Python数据分析的朋友都知道,在可视化的工具中,有很多优秀的三方库,比如matplotlib,seaborn,plotly,Boken,pyecharts等等。这些可视化库都有自己的特点,在实际应用中也广为大家使用。plotly、Boken等都是交互式的可视化工具,结合Jupyternotebook可以非常灵活方便地展现分析后的结果。虽然做出的效果非常的炫酷,比如plotly,但是每一次都需要写很长的代码,一是麻烦,二是不便于维护。我觉得在数据
系统 2019-09-27 17:52:48 2011
前言栈、队列和优先级队列都是非常基础的数据结构。Python作为一种“编码高效”的语言,对这些基础的数据结构都有比较好的实现。在业务需求开发过程中,不应该重复造轮子,今天就来看看些数据结构都有哪些实现。0x00栈(Stack)栈是一种LIFO(后进先出)的数据结构,有入栈(push)、出栈(pop)两种操作,且只能操作栈顶元素。在Python中有多种可以实现栈的数据结构。1、listlist是Python内置的列表数据结构,它支持栈的特性,有入栈和出栈操作
系统 2019-09-27 17:52:46 2011
随着脚本复杂程度增加,配置文件成了必不可少。之前一直使用json文件,当作配置文件。比较之下,configparser库更加适合。下述文件为一个简单的configparser库的配置文件config.ini[testdb]db_port=3306db_host=127.0.0.1db_user=rootdb_passwd=123456#remark[zhfx]target="zy-zhfx"targets=["zy-zhfx"]num=3上述方括号内的[]
系统 2019-09-27 17:52:13 2011
Python中的上下文管理器withexpression[astarget]:with-body上下文管理器是为with语句而生。只要实现了上下文管理器协议__enter__与__exit__,就可以使用with语句。__enter__通常执行一些初始化操作,并且该函数的返回值会赋值给可选的astarget中的target变量。__exit__执行资源清理工作。它接收三个参数,异常类型,异常实例,和异常栈,根据这些异常信息,__exit__可以选择进行相应
系统 2019-09-27 17:51:21 2011
安装前准备(准备编译环境)yuminstallzlib-develbzip2-developenssl-develncurses-develgcc-c++gcc-y获取Python3.6源码#获取源码wgethttps://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz#安装xzyuminstallxz-y#解压tar-xvfPython-3.6.3.tar.xz-C/usr/local/src/安装
系统 2019-09-27 17:51:11 2011
返回被去除指定字符的字符串默认去除空白字符删除首尾字符:str.strip([char])删除首字符:str.lstrip([char])删除尾字符str.strip([char])判断是否匹配首末字符匹配成功返回True,否则返回False匹配首字符:str.startswith(char[,start[,end]])匹配末字符:str.endswith(char[,start[,end]])查找字符,找到返回字符位置,否则返回-1从字符串开头查找str
系统 2019-09-27 17:50:02 2011
理解新概念PythonV2.2中引入了迭代器的思想。唔,这并不十分正确;这种思想的“苗头”早已出现在较老的函数xrange()以及文件方法.xreadlines()中了。通过引入yield关键字,Python2.2在内部实现的许多方面推广了这一概念,并使编程定制迭代器变得更为简单(yield的出现使函数转换成生成器,而生成器反过来又返回迭代器)。迭代器背后的动机有两方面。将数据作为序列处理通常是最简单的方法,而以线性顺序处理的序列通常并不需要都同时实际存在
系统 2019-09-27 17:49:57 2011
>>>lst=['x'forninrange(5)]>>>print(lst)['x','x','x','x','x']>>>lst=['z']*5>>>print(lst)['z','z','z','z','z']>>>lst=[0]*3>>>print(lst)[0,0,0]
系统 2019-09-27 17:48:48 2011