由于工作的需求,需要用python做一个类似网络爬虫的采集器。虽然Python的urllib模块提供更加方便简洁操作,但是涉及到一些底层的需求,如手动设定User-Agent,Referer等,所以选择了直接用socket进行设计。当然,这样的话,需要对HTTP协议比较熟悉,HTTP协议这里就不做讲解了。整个python的代码如下:#!/usr/binenvpythonimportsockethost="www.baidu.com"se=socket.so
系统 2019-09-27 17:52:30 2146
importhashlibdef_verfy_ac(private_key,params):items=sorted(params.items(),key=lambdax:x[0])params_data=""foriinitems:params_data=params_data+i[0]+i[1]params_data=params_data+private_keysign=hashlib.sha1()sign.update(params_data.en
系统 2019-09-27 17:52:26 2146
Python的元组和列表类似,不同之处在于元组中的元素不能修改(因此元组又称为只读列表),且元组使用小括号而列表使用中括号,如下:tup1=('physics','chemistry',1997,2000)tup2=(1,2,3,4,5,6)特别注意:1、元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义tup1=(50,)2、元组中的元素值使不允许修改的,但可以对元组进行连接组合tup1=(12,34.56)tup2=('abc','xyz')tu
系统 2019-09-27 17:52:18 2146
一、背景今天闲着无事,写了一个小小的Python脚本程序,然后给同学炫耀的时候,发现每次都得拉着其他人过来看着自己的电脑屏幕,感觉不是很爽,然后我想着网上肯定有关于Python脚本转换成可执行文件的操作,事不宜迟,我就开始了问度娘,各种寻找资料,发现网上的资料太多了,有一些比较老了,适合Python2.x系列,在现在Python3流行的时代,我们当然是直接无视,但是各种方法凌乱的很,各种教程也是或全或缺的,鄙人也捣鼓了可久,后来发现一种方法挺多人用的,在自
系统 2019-09-27 17:51:28 2146
filter(functionorNone,sequence),其中sequence可以是list,tuple,string。这个函数的功能是过滤出sequence中所有以元素自身作...filter(functionorNone,sequence),其中sequence可以是list,tuple,string。这个函数的功能是过滤出sequence中所有以元素自身作为参数调用function时返回True或bool(返回值)为True的元素并以列表返回.
系统 2019-09-27 17:50:48 2146
什么是变量:用来绑定数据对象的标识符一.变量的命名规则:变量名必须为字母或下划线开头,后跟字母或下划线或数字不能使用python的关键字命名命名规则可以被视为一种惯例,并无绝对与强制目的是为了增加代码的识别和可读性在定义变量时,为了保证代码格式,=的左右应该各保留一个空格在Python中,如果变量名需要由二个或多个单词组成时,可以按照以下方式命名每个单词都使用小写字母单词与单词之间使用_下划线连接例如:first_name、ast_name、qq_numb
系统 2019-09-27 17:50:41 2146
一、实现过程终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)书写格式:开头部分:\033[显示方式;前景色;背景色m+结尾部分:\033[0m注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;另外由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,
系统 2019-09-27 17:50:28 2146
推荐:高阶函数python高阶函数有误但可以参考python中常见的内置高阶函数添加链接描述什么是高阶函数?高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数(Higher-orderfunction)。高阶函体现了函数式编程思想:--函数作为参数:将核心逻辑传入方法体,使该方法适用性更为广泛.传入数据:整数/小数/容器/自定义类的对象传入逻辑:方法--内置高阶函数:f
系统 2019-09-27 17:50:16 2146
ccs的优点:css相对xpath语法比xpath简洁,定位速度比xpath快css的缺点:css不支持用逻辑运算符来定位,而xpath支持。css定位语法形式多样,相对xpath比较难记。css定位建议多用,这个定位方式很强大,定位速度快且准确度高。至于难记,用熟了就好了,对勤快的人来说,这不是问题。CSS_selector常用符号:#表示id.表示class>表示子元素,层级1.通过id属性定位:find_element_by_css_selector
系统 2019-09-27 17:49:19 2146
占位符,顾名思义就是插在输出里站位的符号。占位符是绝大部分编程语言都存在的语法,而且大部分都是相通的,它是一种非常常用的字符串格式化的方式。1、常用占位符的含义s:获取传入对象的__str__方法的返回值,并将其格式化到指定位置r:获取传入对象的__repr__方法的返回值,并将其格式化到指定位置c:整数:将数字转换成其unicode对应的值,10进制范围为0<=i<=1114111(py27则只支持0-255);字符:将字符添加到指定位置o:将整数转换成
系统 2019-09-27 17:49:18 2146
几乎所有的微薄都提供了缩短网址的服务,其原理就是将一个url地址按照一定的算法生成一段字符串,然后加在一个短域名后面边成了一个新的url地址,数据库中会存放这个短地址和原始的地址,当用户点击这个新的短地址后,短地址服务会根据短域名后面的几个字符串从数据库中读出原来的地址然后页面进行跳转。比如新浪微薄中的url是http://t.cn/xxxxxxxt.cn是其域名,其后面跟着的是7位算出来的字符串。方法一:使用哈希库自定义算法因为文本中显示太长的url会比
系统 2019-09-27 17:48:18 2146
采集内容常需要得到网页返回的验证码做进一步处理下面代码是用python写的用来获取网页http状态码的脚本#!/usr/bin/python#-*-coding:utf-8-*-#encoding=utf-8#Filename:states_code.pyimporturllib2url='//www.jb51.net/'response=Nonetry:response=urllib2.urlopen(url,timeout=5)excepturllib
系统 2019-09-27 17:47:48 2146
1.手动制作python的exe可执行程序Python没有内建一个编译为exe的功能。给python程序的部署带来不少的麻烦。所以就会出现一些py2exe之类的很不错的工具,用于自动把.py文件编译为.exe文件。最近抽空研究了一下手动实现类似py2exe的功能,希望加强对python的了解。结果还相当不错。把结果记录下来,与大家共享。1.1.原理文中所描述的方法,基于python的以下几个功能1)python程序运行时,会在sys.path指定的路径中查
系统 2019-09-27 17:47:34 2146
某些时候我们需要让类动态的添加属性或方法,比如我们在做插件时就可以采用这种方法。用一个配置文件指定需要加载的模块,可以根据业务扩展任意加入需要的模块。本文就此简述了Python实现动态添加类的属性或成员函数的解决方法,具体方法如下:首先我们可以参考ulipad的实现:mixin。这里做的比较简单,只是声明一个类,类初始化的时候读取配置文件,根据配置列表加载特定目录下的模块下的函数,函数和模块同名,将此函数动态加载为类的成员函数。代码如下所示:classWi
系统 2019-09-27 17:47:25 2146
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思?函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即在堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形式参数的任何操作都是作为局部变量进行,不会影响主调函数的
系统 2019-09-27 17:47:11 2146