由于工作的需求,需要用python做一个类似网络爬虫的采集器。虽然Python的urllib模块提供更加方便简洁操作,但是涉及到一些底层的需求,如手动设定User-Agent,Referer等,所以选择了直接用socket进行设计。当然,这样的话,需要对HTTP协议比较熟悉,HTTP协议这里就不做讲解了。整个python的代码如下:#!/usr/binenvpythonimportsockethost="www.baidu.com"se=socket.so
系统 2019-09-27 17:52:30 2217
原理在网页源码中如果出现将用户输入数据进行反序列化当成参数输出时,出现漏洞,可造成任意命令执行例如网页源码try:become=self.get_argument('become')p=pickle.loads(urllib.unquote(become))returnself.render('form.html',res=p,member=1)except:returnself.render('form.html',res='ThisisBlackTec
系统 2019-09-27 17:51:41 2217
打开excel文件读取数据data=xlrd.open_workbook("excelFile.xls")读取工作表table=data.sheets()[0]#通过索引顺序获取table=data.sheet_by_index(0)#通过索引顺序获取table=data.sheet_by_name(u'Sheet1')#通过名称获取获取整行和整列的值(数组)table.row_values(i)#获取整行值table.col_values(i)#获取整列
系统 2019-09-27 17:51:17 2217
子曰:“工欲善其事,必先利其器。”学习Python就需要有编译Python程序的软件,一般情况下,我们选择在Python官网下载对应版本的Python然后用记事本编写,再在终端进行编译运行即可,但是对于我这样懒的小白,我喜欢装一些方便的软件来辅助我编写程序。在学习Java时,正常情况选择安装JDK然后配置环境变量后,用记事本编写程序再在终端编译运行即可,而我一般选择安装JDK+MyEclipse。将Python和Java进行类比的话,在Python中使用P
系统 2019-09-27 17:51:16 2217
scipy的引入要制作一张具有特定形状的词云图,便需要一张原始图片提供形状参数,于是我们便要使用scipyscipy的安装在Windows系统中,在命令提示符中输入pipinstallscipy进行安装若报错则尝试pip3installscipy或sudopip3installscipy在苹果系统中则建议直接输入sudopip3installscipy若报错则参照Windows下的方法scipy的运用scipy旨在提取原始图片的形状参数,并应用于制作特定形
系统 2019-09-27 17:50:36 2217
Python2的字符串有两种:str和Unicode,Python3的字符串也有两种:str和Bytes。Python2的str相当于Python3的Bytes,而Unicode相当于Python3的Bytes。Python2里面的str和Unicode是可以混用的,在都是英文字母的时候str和unicode没有区别。而Python3严格区分文本(str)和二进制数据(Bytes),文本总是Unicode,用str类型,二进制数据则用Bytes类型表示,这
系统 2019-09-27 17:50:25 2217
环境spyder(python3.6)代码:fromflaskimportFlask,requestimportjsonimportsysdefaultencoding='utf-8'importloggingdeftt(name,age):result_str="%s今年%s岁"%(name,age)returnresult_strapp=Flask(__name__)@app.route("/test_1.0",methods=["GET"])defc
系统 2019-09-27 17:49:36 2217
摘要在这篇文章里,我将以反模式的角度来直接讨论Django的低级ORM查询方法的使用。作为一种替代方式,我们需要在包含业务逻辑的模型层建立与特定领域相关的查询API,这些在Django中做起来不是非常容易,但通过深入地了解ORM的内容原理,我将告诉你一些简捷的方式来达到这个目的。概览当编写Django应用程序时,我们已经习惯通过添加方法到模型里以此达到封装业务逻辑并隐藏实现细节。这种方法看起来是非常的自然,而且实际上它也用在Django的内建应用中。>>>
系统 2019-09-27 17:49:03 2217
我们上次报道过,微软官方上线Python教程文档。最近微软针对Python初学者,推出了一套免费的教程视频。这套视频名为PythonforBeginners,该在线教学视频由微软高级项目经理ChristopherHarrison、以及微软AIGaming的商业开发经理SusanIbach共同讲解,在课程中加入了他们对Python的见解,一共有44个视频。官方对该系列视频的描述是快速和简洁的,这套视频并不是对Python的深入研究,而是为Python初学者提
系统 2019-09-27 17:48:40 2217
9.5守护进程主进程创建守护进程其一:守护进程会在主进程代码执行结束后就立即终止其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError:daemonicprocessesarenotallowedtohavechildren注意:进程之间是互相独立的,主进程代码运行结束,守护进程随即终止p.daemon:默认值为False,如果设为True,代表p为后台运行的守护进程,当p的父进程终止时,p也随之终止,并且设定为True后,p不能创建
系统 2019-09-27 17:48:24 2217
#coding=utf-8fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChainsfromselenium.webdriver.common.keysimportKeysimporttimeimportosmydriver=webdriver.Firefox()mydriver.get("http://www.126.com/")time
系统 2019-09-27 17:47:40 2217
下面程序能够爬取百度图片一个网页里面的所以图片,值得关注的是匹配字段,正则表达式要写正确,虽然匹配成功的但是爬取的图片还是较少,下篇我会采取get方法来请求更多图片来爬取。importurllib.requestimportreimporttimedefopen_url(url):req=urllib.request.Request(url)req.add_header('User-Agent','Mozilla/5.0(WindowsNT6.1;WOW6
系统 2019-09-27 17:47:28 2217
还是分析一下大体的流程:首先还是Chrome浏览器抓包分析元素,这是网址:https://www.douyu.com/directory/all发现所有房间的信息都是保存在一个无序列表中的li中,所以我们可以先获取一个装有li的element对象的列表,然后在对每个element逐一操作分析斗鱼的翻页,有一个下一页按钮,是个li,class="dy-Pagination-item-custom",但是当烦到最后一页的时候,class="dy-Paginat
系统 2019-09-27 17:47:21 2217
登录流程:实例化一个driver,然后driver.get()发送请求最重要的:切换iframe子框架,因为豆瓣的网页中的登录那部分是一个ifrme,必须切换才能寻找到对应元素利用selenium切换到账号密码登录利用selenium输入账户和密码利用selenium点击登录按钮然后利用字典推导式保存了一下cookie代码实现:importtimefromseleniumimportwebdriver#实例化driverdriver=webdriver.C
系统 2019-09-27 17:47:06 2217
本文介绍的关于Python时间日期处理,日期时间处理在实际应用场景中无处不在,所以这也成了编程语言中必不可少的模块,Python也不例外。但是,你知道在Python中有多少个相关的模块吗?datetime、time、calendar、dateutil、pytz等等。你知道有多少种数据类型吗?date、time、datetime、tzinfo、timedelta等等。有天我遇到这样的需求,想获取当前月的前一个月是几月,假设本月是2018年1月,那么上个月就是
系统 2019-09-27 17:46:11 2217