思路一、想要实现登录豆瓣关键点分析真实post地址----寻找它的formdata,如下图,按浏览器的F12可以找到。实战操作实现:模拟登录豆瓣,验证码处理,登录到个人主页就算是success数据:没有抓取数据,此实战主要是模拟登录和处理验证码的学习。要是有需求要抓取数据,编写相关的抓取规则即可抓取内容。登录成功展示如图:spiders文件夹中DouBan.py主要代码如下:#-*-coding:utf-8-*-importscrapy,urllib,re
系统 2019-09-27 17:52:01 1857
Python编程中raise可以实现报出错误的功能,而报错的条件可以由程序员自己去定制。在面向对象编程中,可以先预留一个方法接口不实现,在其子类中实现。如果要求其子类一定要实现,不实现的时候会导致问题,那么采用raise的方式就很好。而此时产生的问题分类是NotImplementedError。写一段代码如下:classClassDemo:deftest_demo(self):raiseNotImplementedError("mytest:notimpl
系统 2019-09-27 17:51:29 1857
本文实例讲述了Python基础学习之基本数据结构。分享给大家供大家参考,具体如下:前言相比于PHP,Python同样也是脚本解析语言,所以在使用Python的时候,变量和数据结构相对于编译语言来说都会简单许多,但是Python相比于PHP来说,变量类型的定义会比较严格:string->int的转换没有PHP那么方便。但这也让程序稳定性有所提升,例如和客户端交互的时候,数据库取出来的数字int和缓存取出来的数字(默认是string)需要手动进行转换(否则会有
系统 2019-09-27 17:48:52 1857
python基础学习笔记(十一)2013-05-1423:31虫师阅读(...)评论(...)编辑收藏迭代器本节进行迭代器的讨论。只讨论一个特殊方法----__iter__,这个方法是迭代器规则的基础。迭代器规则迭代的意思是重复做一些事很多次---就像在循环中做的那样。__iter__方法返回一个迭代器,所谓迭代器就是具有next方法的对象,在调用next方法时,迭代器会返回它的下一个值。如果next方法被调用,但迭代器没有值可以返回,就会引发一个Stop
系统 2019-09-27 17:48:51 1857
最近实现了一些微信的简单玩法我们可以通过网页版的微信微信网页版,扫码登录后去抓包爬取信息,还可以post去发送信息。》》安装itchat这个库pipinstallitchat先来段简单的试用,实现微信的登录,运行下面代码会生成一个二维码,扫码之后手机端确认登录,就会发送一条信息给‘filehelper',这个filehelper就是微信上的文件传输助手。importitchat#登录itchat.login()#发送消息itchat.send(u'你好鸭!
系统 2019-09-27 17:48:36 1857
背景:最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置了函数调用超时机制。代码:importtimeimportsignaldeftest(i):time.sleep(i%4)print"%dwithintime"%(i)returniif__name__=='__main__':defhandler(signum,frame):raiseAssertionErrorforiinrange(1,10):try:sign
系统 2019-09-27 17:48:29 1857
python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r“c:\python”)检验给出的路径是否是一个文件:os.path.isfile()检验给出的路径是否是一个目录:os.path.isdir()判
系统 2019-09-27 17:47:37 1857
四六级成绩查询网站我所知道的有两个:学信网(http://www.chsi.com.cn/cet/)和99宿舍(http://cet.99sushe.com/),这两个网站采用的都是动态网页。我使用的是学信网,好了,网站截图如下:网站的代码如下:准考证号:请输入15位准考证号姓名:姓名超过3个字,可只输入前3个由图中可以看出表单提交的链接为/cet/query,即:http://www.chsi.com.cn/cet/query,好了,填写表单和结果如下:
系统 2019-09-27 17:38:16 1857
之前有写利用md5方式来做差异备份,但是这种md5方式来写存在以下问题:•md5sum获取有些软连接的MD5值存在问题•不支持对空目录进行备份,因为md5sum无法获取空目录的md5值•权限的修改md5sum无法判断解决方案:利用文件的mtimectimemtime(Modifiedtime)是在写入文件时随文件内容的更改而更改的ctime(Createtime)是在写入文件、更改所有者、权限或链接设置时随Inode的内容更改而更改的废话不多说直接上代码:
系统 2019-09-27 17:37:59 1857
1.线程基础1.1.线程状态线程有5种状态,状态转换的过程如下图所示:1.2.线程同步(锁)多线程的优势在于可以同时运行多个任务(至少感觉起来是这样)。但是当线程需要共享数据时,可能存在数据不同步的问题。考虑这样一种情况:一个列表里所有元素都是0,线程"set"从后向前把所有元素改成1,而线程"print"负责从前往后读取列表并打印。那么,可能线程"set"开始改的时候,线程"print"便来打印列表了,输出就成了一半0一半1,这就是数据的不同步。为了避免
系统 2019-09-27 17:37:41 1857