07 2017 档案

摘要:# 单元测试 如果你听说过“测试驱动开发”(TDD:Test-Driven Development),单元测试就不陌生。 单元测试是用来对一个模块、一盒函数或者一个类来进行正确性检验的测试工作。 比如对函数abs(),我们可以编写出以下几个测试用例: 1、输入整数,比如1、1.2、0.99,期待返回值与输入相同; 2、输入负数,比如-1、-1.2、-0.99,期待返回值与是呼入相反; 3、输... 阅读全文
posted @ 2017-07-29 13:59 道高一尺 阅读(424) 评论(0) 推荐(0) 编辑
摘要:调试 程序能一次写完并正常执行的概率很小。总会有各种各样的bug需要修正。 有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时 哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。 第一种方法:print 简单直接粗暴有效,就是用print()把可能有问题的变量打印出来看看: def foo(s): n = int(s) ... 阅读全文
posted @ 2017-07-27 19:31 道高一尺 阅读(371) 评论(0) 推荐(0) 编辑
摘要:一、python的错误处理 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错以及出错的原因。 在操作系统提供的调用中,返回错误码非常常见。比如打开文件的函数open(),成功时返回文件的描述符(就是一个整数),出错时返回-1 用错误码来表示是否出错十分不便,因为函数本身应该返回的正常结果和错误码混在一起,造成调用者必须大量的代码来判断是否出错: d... 阅读全文
posted @ 2017-07-27 15:14 道高一尺 阅读(18515) 评论(0) 推荐(0) 编辑
摘要:在程序运行过程中,总会遇到各种各样的错误。有的错误是程序编写有问题造成的,比如本来应该输出整数,输出了字符串,这种错误我们称为bug,bug是必须修复的。有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。还有一类错误是无法在程序 阅读全文
posted @ 2017-07-27 10:56 道高一尺 阅读(255) 评论(0) 推荐(0) 编辑
摘要:# python如何转换word格式、读取word内容、转成html? import docx from win32com import client as wc # 首先将doc转换成docx word = wc.Dispatch("Word.Application") doc = word.Documents.Open(r"D:\\demo.doc") #使用参数16表示将doc转换成... 阅读全文
posted @ 2017-07-27 10:39 道高一尺 阅读(8502) 评论(1) 推荐(0) 编辑
摘要:# 函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就算完成了。 对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了 函数内政部的复杂逻辑被封装起来,调用者无需了解。 python的函数定义非常简单,单灵活度却非常大。除了正常定义的必选参数外, 还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数 还... 阅读全文
posted @ 2017-07-27 09:05 道高一尺 阅读(1613) 评论(0) 推荐(0) 编辑
摘要:# post一个json数据 import requests headers={ "Accept":"application/json, text/plain, */*", "Accept-Encoding":"gzip, deflate", "Accept-Language":"zh-CN,zh;q=0.8", "appkey":"8dc7959eeee2792ac2eebb490e60d... 阅读全文
posted @ 2017-07-25 13:31 道高一尺 阅读(838) 评论(0) 推荐(0) 编辑
摘要:Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器,lxml 解析器更加强大,速度更快,推荐安装。 解析器使用方法优势劣势 Python标准库 BeautifulSoup(markup, 阅读全文
posted @ 2017-07-23 10:36 道高一尺 阅读(4677) 评论(0) 推荐(0) 编辑
摘要:GIT是目前世界上最先进最牛逼的分布式版本控制系统git维护的三棵树分别是工作区域、暂存区域、git仓库工作区域:就是你平时存放项目代码的地方暂存区域:用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息git仓库:就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEA 阅读全文
posted @ 2017-07-22 21:12 道高一尺 阅读(214) 评论(0) 推荐(0) 编辑
摘要:# -*- coding: UTF-8 -*- # 模块化思维的前提: # 实现一个功能有很多步骤,我们尽可能不一蹴而就,而是分模块开发 # 既然要层层分解,写函数的时候,最好就不要让单一的函数过于复杂 # 一个函数仅实现一个小功能,只返回一个结果为上佳 # 对函数装饰器的理解: # 函数的装饰器其实是函数模块化思维的一种体现 # 装饰器可以翻译成‘外包装’,层层包裹里面的东西,类似洋葱 # ... 阅读全文
posted @ 2017-07-22 18:07 道高一尺 阅读(305) 评论(0) 推荐(0) 编辑
摘要:作者:Java我人生(陈磊兴) 原文出处http://blog.csdn.net/chenleixing/article/details/44600587 做Java开发的,经常会用Eclipse或者MyEclise集成开发环境,一些实用的Eclipse快捷键和使用技巧,可以在平常开发中节约出很多时 阅读全文
posted @ 2017-07-21 16:52 道高一尺 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-07-21 16:13 道高一尺 阅读(923) 评论(0) 推荐(0) 编辑
摘要:来源:http://blog.csdn.net/tianzhu123/article/details/8187470/ 在处理字符串时,常常会遇到不知道字符串是何种编码,如果不知道字符串的编码就不能将字符串转换成需要的编码。面对多种不同编码的输入方式,是否会有一种有效的编码方式?chardet是一个 阅读全文
posted @ 2017-07-20 14:08 道高一尺 阅读(7362) 评论(0) 推荐(0) 编辑
摘要:python超出递归深度时会出现异常: RuntimeError: maximum recursion depth exceeded python默认的递归深度是很有限的,大概是900当递归深度超过这个值的时候,就会引发这样的一个异常。 解决的方式是手工设置递归调用深度,方式为 阅读全文
posted @ 2017-07-20 11:43 道高一尺 阅读(2254) 评论(0) 推荐(0) 编辑
摘要:https://addons.mozilla.org/en-US/firefox/ WebDriver Element Locator 阅读全文
posted @ 2017-07-17 13:14 道高一尺 阅读(237) 评论(0) 推荐(0) 编辑
摘要:开源项目的贡献流程 1)新建issue 提交使用问题或者建议或者想法 2)pull Request 步骤: 1.fork项目 2.修改自己仓库的项目代码 3.发起 pull request 4.等待作者操作审核 阅读全文
posted @ 2017-07-16 19:50 道高一尺 阅读(379) 评论(0) 推荐(0) 编辑
摘要:MIT许可证(The MIT License)是许多软件授权条款中,被广泛使用的其中一种。与其他常见的软件授权条款(如GPL、LGPL、BSD)相比,MIT是相对宽松的软件授权条款。 MIT 许可证几乎是最宽松的版权约定,一旦你的程序采用,也就意味着别人只要在软件包含上边的版权声明,就可以对你的程序 阅读全文
posted @ 2017-07-12 20:15 道高一尺 阅读(9580) 评论(0) 推荐(0) 编辑
摘要:我们之前的爬虫都是在同一台机器运行的,叫做单机爬虫。scrapy的经典架构图也是描述的单机架构。那么分布式爬虫架构实际上就是:由一台主机维护所有的爬取队列,每台从机的sheduler共享该队列,协同存储与提取。分布式爬虫的多台协作的关键是共享爬取队列。队列用什么维护呢?推荐redis队列redis是 阅读全文
posted @ 2017-07-07 13:45 道高一尺 阅读(2300) 评论(0) 推荐(0) 编辑
摘要:1,spider打开某网页,获取到一个或者多个request,经由scrapy engine传送给调度器schedulerrequest特别多并且速度特别快会在scheduler形成请求队列queue,由scheduler安排执行2,schelduler会按照一定的次序取出请求,经由引擎, 下载器中 阅读全文
posted @ 2017-07-07 11:20 道高一尺 阅读(5616) 评论(0) 推荐(0) 编辑
摘要:目前来说,处理js有两种方法: 1,通过第三方工具执行js脚本, selenium,会驱动浏览器把js全部加载出来并返回. 2,手动模拟js的执行 2.1)找到js链接,可以在idle中用print(u'*******')来检测 2.2)模拟js执行,从里面提取数据,一般是返回json格式的数据 阅读全文
posted @ 2017-07-04 15:44 道高一尺 阅读(297) 评论(0) 推荐(0) 编辑
摘要:目前来看,需要登陆才能爬取的页面有两种可用方法 方法一:FormRequest 里面传入用户名和密码 方法二:添加cookie 阅读全文
posted @ 2017-07-04 14:54 道高一尺 阅读(1389) 评论(0) 推荐(0) 编辑
摘要:# -*- coding: utf-8 -*- import scrapy from rihan.items import RihanItem class RihanspiderSpider(scrapy.Spider): name = "rihanspider" # allowed_domains = ["*******"] start_urls = [******... 阅读全文
posted @ 2017-07-04 08:40 道高一尺 阅读(1309) 评论(0) 推荐(0) 编辑
摘要:专注自:http://blog.csdn.net/hjy_six/article/details/6862648 阅读全文
posted @ 2017-07-03 16:23 道高一尺 阅读(1159) 评论(0) 推荐(0) 编辑
摘要:# scrapy爬取西刺网站ip # -*- coding: utf-8 -*- import scrapy from xici.items import XiciItem class XicispiderSpider(scrapy.Spider): name = "xicispider" allowed_domains = ["www.xicidaili.com/nn"]... 阅读全文
posted @ 2017-07-03 11:43 道高一尺 阅读(1094) 评论(0) 推荐(0) 编辑
摘要:logging的使用方法 1,简单使用方法 >>> import logging >>> logging.warning('this is a warning') WARNING:root:this is a warning 2,通用的记录日志的方法,可加入日志的级别 >>> import logging >>> logging.log(logging.WARNING,"this is a... 阅读全文
posted @ 2017-07-02 16:38 道高一尺 阅读(427) 评论(0) 推荐(0) 编辑
摘要:初始化参数 class scrapy.http.Response( url[, status=200, headers, body, flags ] ) 其他成员 url status headers body request meta flags copy() replace() 子类介绍 class scrapy.http.TextResponse(url... 阅读全文
posted @ 2017-07-02 16:10 道高一尺 阅读(3786) 评论(0) 推荐(0) 编辑
摘要:scrapy中的request 初始化参数 class scrapy.http.Request( url [ , callback, method='GET', headers, body, cookies, meta, encoding='utf-8', priority=0, don't_filter=False, errback ] ) 1,生成Request的方法 def par... 阅读全文
posted @ 2017-07-02 16:05 道高一尺 阅读(4104) 评论(0) 推荐(0) 编辑
摘要:scrapy.Spider的属性和方法 属性: name:spider的名称,要求唯一 allowed_domains:允许的域名,限制爬虫的范围 start_urls:初始urls custom_settings:个性化设置,会覆盖全局的设置 crawler:抓取器,spider将绑定到它上面 custom_settings:配置实例,包含工程中所有的配置变量 logger:日志实例,打印调试... 阅读全文
posted @ 2017-07-02 12:08 道高一尺 阅读(2826) 评论(0) 推荐(0) 编辑
摘要:# -*- coding: utf-8 -*- # 分析动态网页请求爬取腾讯视频评论 import scrapy import re import json import time from tencent.items import TencentItem class TenspiderSpider(scrapy.Spider): name = "tenspider" # a... 阅读全文
posted @ 2017-07-01 15:30 道高一尺 阅读(717) 评论(0) 推荐(0) 编辑
摘要:1 #-*-coding:utf8-*- 2 3 import smtplib 4 from email.mime.text import MIMEText 5 import requests 6 from lxml import etree 7 import os 8 import time 9 import sys 10 reload(sys) 11... 阅读全文
posted @ 2017-07-01 10:56 道高一尺 阅读(310) 评论(0) 推荐(0) 编辑
摘要:# 动态加载网页的爬取ajax的介绍ajax全称'Asynchronous Javascript And XML'(异步JavaScript和XML)是指一种创建交互式网页应用的网页开发技术通过在后台与服务器进行少量数据交换,ajax可以使网页实现异步更新这意味着可以在不重新加载整个网页的情况下,对 阅读全文
posted @ 2017-07-01 10:50 道高一尺 阅读(3332) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示