早听说用python做网络爬虫非常方便,正好这几天单位也有这样的需求,需要登陆XX网站下载部分文档,于是自己亲身试验了一番,效果还不错。本例所登录的某网站需要提供用户名,密码和验证码,在此使用了python的urllib2直接登录网站并处理网站的Cookie。Cookie的工作原理:Cookie由服务端生成,然后发送给浏览器,浏览器会将Cookie保存在某个目录下的文本文件中。在下次请求同一网站时,会发送该Cookie给服务器,这样服务器就知道该用户是否合
系统 2019-09-27 17:53:11 1953
非阻塞IO(non-blockingIO)Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blockingsocket执行读操作时,流程是这个样子:从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会block用户进程,而是立刻返回一个error。从用户进程角度讲,它发起一个read操作后,并不需要等待,而是马上就得到了一个结果。用户进程判断结果是一个error时,它就知道
系统 2019-09-27 17:53:07 1953
前言在Python中,enumrate和range都常用于for循环中,enumrate函数用于同时循环列表和元素,而range()函数可以生成数值范围变化的列表,而能够用于for循环即都是可迭代的。range概述range是用于产生连续或者带步长的数字元素组成的列表,下面是一些基本使用及场景示例。产生数字序列#产生0-9的序列foriinrange(0,10):print(i)print('-'*40)#产生0-20,步进(间隔)为3的数字元素组成的序列
系统 2019-09-27 17:53:03 1953
前言正则表达式就是从字符串中发现规律,并通过“抽象”的符号表达出来。打个比方,对于2,5,10,17,26,37这样的数字序列,如何计算第7个值,肯定要先找该序列的规律,然后用n2+1这个表达式来描述其规律,进而得到第7个值为50。对于需要匹配的字符串来说,同样把发现规律作为第一步,本文主要使用正则表达式完成字符串的查询匹配、替换匹配和分割匹配。常用的正则符号在进入字符串的匹配之前,先来了解一下都有哪些常用的正则符号,见下表所示:如果读者能够比较熟练地掌握
系统 2019-09-27 17:52:54 1953
转https://www.cnblogs.com/ducklu/p/8943903.html1.遍历key值1>>>d={'Python':'astonishing','C++':'complicated','Java':'versatile'}2>>>forkeyind:3...print(key+':'+d[key])4...5Python:astonishing6C++:complicated7Java:versatile同理,可把下列代码的d改为d
系统 2019-09-27 17:52:37 1953
前言学习一个库的最好的方式是了解这个库的源码和组成原理,有时候源码可能会略显生涩,这时候我们想通过查看文档来了解,所以我们可以通过输出库自带的描述文档来了解一个库。Numpy和Scipy模块numpy提供了数组对象,面向的任何使用者。scipy在numpy的基础上,面向科学家和工程师,提供了更为精准和广泛的函数。scipy几乎实现numpy的所有函数,一般而言,如果scipy和numpy都有这个函数的话,应该用scipy中的版本,因为scipy中的版本往往
系统 2019-09-27 17:52:27 1953
建造者模式,也是一种创建新对象的设计方法,和C++中的虚函数很类似,但是用到了python自身的虚基类ABCMeta。1.应用场景:某个类中的函数较多,且实现比较复杂,很多时候需要继承的子类重载或者重新定义逻辑;2.背景基础:由于用到python中虚函数,需要了解abc模块中的ABCMeta和python中类创建对象时的__metaclass__属性含义。一般地,在某个类中如果定义__metaclass__=something时,简单地说是,创建对象时,会
系统 2019-09-27 17:52:24 1953
python的循环编写程序时经常有代码需要重复运行,python提供了while和for进行循环操作。一、while循环1、while循环可以根据条件进行判断,决定是否要循环执行语句块,语法如下:循环条件后面也是要使用冒号,然后缩进写循环操作语句,先判断条件是否成立,如果为true,则执行循环操作语句,如果为false,则跳出循环。示例代码如下:count=0while(count<5):count=count+1print(count)#结果>>>5变量
系统 2019-09-27 17:52:20 1953
最近在自学python,又用python实现了一下BLAST。这次更新了打分函数如下,空位罚分改为-5,但不区分gapopen和gapextend。'''''@author:JiuYu'''defscore(a,b):#scoringfunctionscore=0lst=['AC','GT','CA','TG']ifa==b:score+=2elifa+binlst:score+=-5else:score+=-7returnscoredefBLAST(se
系统 2019-09-27 17:52:10 1953
print("我想打印一个字符串%s"%123)print("我想打印一个字符串",123)print("我想打印一个字符串{}".format(123))这三个输出有什么区别喃?Python中一个数据是否可以迭代(能否使用For)isinstance(需要判断的数据,Iterable)查看返回值,true则可以迭代,false不能迭代。如果创建一个可以迭代的对象?必须实现__iter__()方法在__iter__方法中需要返回一个具有__iter__方法
系统 2019-09-27 17:52:09 1953