协程是什么我们已经做过不少爬虫项目,不过我们爬取的数据都不算太大,如果我们想要爬取的是成千上万条的数据,那么就会遇到一个问题:因为程序是一行一行依次执行的缘故,要等待很久,我们才能拿到想要的数据。既然一个爬虫爬取大量数据要爬很久,那我们能不能让多个爬虫一起爬取?这样无疑能提高爬取的效率,就像一个人干不完的活儿,组个团队一起干,活一下被干完了。这是一个很好的思路——让多个爬虫帮我们干活。但具体怎么用Python实现这事呢?我们可以先别急着想怎么实现这件事,后
系统 2019-09-27 17:50:16 2012
上周给大家推荐了新书PythonQtGUI与数据可视化编程,受到了广大读者的青睐,很多人问我何时上架?什么时间预订?能不能给发完整目录?需要这种知识很久了等回应。今天可以告诉大家,这本书上架啦!!!!【京东购买】【当当购买】本书介绍在Python中使用PyQt5和其他模块进行GUI和数据可视化编程的方法。第一部分介绍PyQt5设计GUI程序的基本框架,包括GUI应用程序的基本结构、窗体UI可视化设计与窗体业务逻辑的设计、信号与槽的特点和使用等。第二部分介绍
系统 2019-09-27 17:50:02 2012
记录三种添加cookie保持接口登录状态的方法,方便自己回顾。1.简单粗暴式。此方法比较小白,前提是已经通过fiddler抓包等方式拿到了cookie,然后直接塞进去。importrequeststrainsUrl='http://XXX.com/trains'headers={"Content-Type":"application/json;charset=UTF-8",}cookies={"XXXthor":"XXXXXX105a42"}prames=
系统 2019-09-27 17:49:54 2012
原题|Left-recursivePEGgrammars作者|GuidovanRossum(Python之父)译者|豌豆花下猫(“Python猫”公众号作者)声明|本翻译是出于交流学习的目的,基于CCBY-NC-SA4.0授权协议。为便于阅读,内容略有改动。我曾几次提及左递归是一块绊脚石,是时候去解决它了。基本的问题在于:使用递归下降解析器时,左递归会因堆栈溢出而导致程序终止。【这是我的PEG系列的第5部分。其它文章参见这个目录】假设有如下的语法规则:ex
系统 2019-09-27 17:49:42 2012
原文链接:https://my.oschina.net/xiaocon/blog/199414finally关键字的意思是只要异常,到最后都会执行语句块。。。#!/usr/bin/pythonimporttimetry:f=file('poem.txt')whileTrue:line=f.readline()iflen(line)==0:breaktime.sleep(2)printline,finally:f.close()print'file.clos
系统 2019-09-27 17:49:21 2012
可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。1.Matplotlib基本概念Matplotlib是python的一个数据可视化工具库,专门用于开发2D图表(包括3D图表),操作简单。2.Matplotlib三层结构容器层容器层由Canvas、Figure、Axes三部分组成。Canvas位于最底层的系统层,充当画板,即放置Figure的工具。Figure是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在
系统 2019-09-27 17:49:11 2012
*args和**kwargs是常用的两个参数*args:用于接受多余的未命名的参数,元组类型。**kwargs:用于接受形参的命名参数,字典类型的数据。可变参数args:deffun(n,*args):print(n)print(args)#未拆包print(*args)#进行拆包fun(1,2,3,4)结果:1(2,3,4)234形参中的*args是接受数据的args,它是一个元组,把传入的数据放进args元组中。函数中的args仍然是元组,*args就
系统 2019-09-27 17:48:57 2012
下面通过几个案例来分析一下,注意:本节的parsematch函数请参考《妙用re.sub分析正则表达式解析匹配过程》案例一:>>>re.findall(r".*.*(.*)",'第二回悟彻菩提真妙理断魔归本合元神')['断魔归本合元神']>>>parsematch(r".*.*(.*)",'第二回悟彻菩提真妙理断魔归本合元神')第1次匹配,匹配情况:匹配子串group(0):第二回悟彻菩提真妙理断魔归本合元神,位置为:(0,19)匹配子串group(1):
系统 2019-09-27 17:48:48 2012
随便在网上找了找,感觉都是讲半天讲不清楚,这里写一下。defgenerator():whileTrue:receive=yield1print('extra'+str(receive))g=generator()print(next(g))print(g.send(111))print(next(g))输出:1extra1111extraNone1为什么会这样呢,点进send就能看到一句话send:Resumesthegeneratorand"sends"
系统 2019-09-27 17:48:19 2012
1.首先定义一个log文件#-*-coding:utf-8-*-importosimporttimeimportloggingimportsyslog_dir1=os.path.join(os.path.dirname(os.path.dirname(__file__)),"logs")today=time.strftime('%Y%m%d',time.localtime(time.time()))full_path=os.path.join(log_di
系统 2019-09-27 17:47:58 2012