在做一个可视化配置爬虫项目时,需要配置爬虫的用户自己输入xpath和csspath路径以提取数据或做浏览器操作.考虑到用户的有时会输入错误的xpath或csspath路径,后台需要对其做合法性校验. xpath有效性校验 对于xpath的有效性检验,使用第三方lxml模块中的etree.XPathEvalError进行校验.不得不说lxml是一个解析爬虫数据的利器,当etree.xpath()遇到不合法的xpath路径时会抛出XPathEvalError错误. 代码如下: from lxml i…
自己在看python处理数据的方法,发现一篇介绍比较详细的文章 转自:http://blog.csdn.net/lingojames/article/details/72835972 20170531 这几天重新拾起了爬虫,算起来有将近5个月不碰python爬虫了. 对照着网上的程序和自己以前写的抓图的程序进行了重写,发现了很多问题.总结和归纳和提高学习效果的有效手段,因此对于这些问题做个归纳和总结,一方面总结学习成果,使之成为自己的东西,另一方面希望能够给其他初学爬虫的人一些启发. 爬虫程序核…
有朋友问我正则,,okey,其实我的正则也不好,但是python下xpath是相对较简单的 简单了解一下xpath: XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上. 因此,对 XPath 的理解是很多高级 XML 应用的基础. 这个是w3c上关于xpath的介绍,可以看出xpath是在xml文档中查询信息的语…
其他一般表达式 在前两章:Python虚拟机中的一般表达式(一).Python虚拟机中的一般表达式(二)中,我们介绍了Python虚拟机是怎样执行创建一个整数值对象.字符串对象.字典对象和列表对象.现在,我们再来学习变量赋值.变量运算和print操作,Python是如何执行的 还是和以前一样,我们看一下normal.py对应的PyCodeObject所对应的符号表和常量 # cat normal.py a = 5 b = a c = a + b print(c) # python2.5 …… >…
获取元素的xpath, 转换xpath为csspath进行jQuery元素获取 博客分类: 编程心得 jQueryCSSHTML  var $shadow = new Object(); /** 获取元素的xpath 特性: - 转换xpath为csspath进行jQuery元素获取 - 仅生成自然表述路径(不支持非.或) @param dom {String/Dom} 目标元素 @returns {String} dom的xpath路径 */ $shadow.domXpath = functi…
windows下python检查文件是否被其它文件打开.md 有时候我们需要能够判断一个文件是否正在被其它文件访问,几乎不可避免的要调用操作系统接口 from ctypes import cdll import os _sopen = cdll.msvcrt._sopen _close = cdll.msvcrt._close _SH_DENYRW = 0x10 def is_open(filename): if not os.access(filename, os.F_OK): return…
复杂内建对象的创建 在上一章Python虚拟机中的一般表达式(一)中,我们看到了Python是如何创建一个空的字典对象和列表对象,那么如果创建一个非空的字典对象和列表对象,Python的行为又是如何呢?demo2.py里面包含一个字典对象和列表对象,这两个对象都是在初始化时就包含元素,首先,我们看一下对应PyCodeObject中的符号表和常量表 # cat demo2.py i = 1 s = "Python" d = {"1": 1, "2"…
Python检查数组元素是否存在类似PHP isset()方法 sset方法来检查数组元素是否存在,在Python中无对应函数,在Python中一般可以通过异常来处理数组元素不存在的情况,而无须事先检查 Python的编程理念是"包容错误"而不是"严格检查".举例如下: 代码如下: Look before you leap (LBYL): if idx < len(array):  array[idx]  else:  #handle this  Easier…
Lambda表达式: lambda是个匿名函数,自动加return返回 a={ 6:2,8:0, 1:4,-5:6,99:11,4:22} print(sorted(a.items()))#按key排序 print(sorted(a.items(),key=lambda x:x[1]))#按value排序,x每一个元素 rer = [1,2,4,5,3,2]#放入字符串会报错 # rer.sort() # print(rer) new_s = sorted(rer)#排序,如字符串排序,以类比较…
知识内容: 1.运算符与表达式 2.for\while初步了解 3.常用内置函数 一.运算符与表达式 python与其他语言一样支持大多数算数运算符.关系运算符.逻辑运算符以及位运算符,并且有和大多数语言一样的运算符优先级.除此之外,还有一些是python独有的运算符. 1.算术运算符 a=10, b=20 2.比较运算符 a=10, b=20  注:  在python3中不存在<>,只在python2中存在<> 3.赋值运算符 4.逻辑运算符 and两边条件都成立(或都为True…