06 2017 档案
摘要:下面我们再来看看 urllib 模块提供的 urlretrieve() 函数。urlretrieve() 方法直接将远程数据下载到本地。 1 >>> help(urllib.urlretrieve) 2 Help on function urlretrieve in module urllib: 3
阅读全文
摘要:python网络数据采集的代码 https://github.com/REMitchell/python-scraping
阅读全文
摘要:服务器端主要做以下工作: 打开 socket 绑定到特定的地址以及端口上 监听连接 建立连接 接收/发送数据 上面已经介绍了如何创建 socket 了,下面一步是绑定。 绑定 socket 函数 bind 可以用来将 socket 绑定到特定的地址和端口上,它需要一个 sockaddr_in 结构作
阅读全文
摘要:Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页、QQ 聊天、收发 email 等等。要解决网络上两台主机之间的进程通信问题,首先要唯一标识该进程,在 TC
阅读全文
摘要:经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持。 本篇内容 探索部分成果 整体思路梳理 是不是没看懂?没事,下面我将一点点说明自己模拟登录的过程,希望大家可以理解。 前期准备 由于淘宝的 ua 算法和 aes 密码加
阅读全文
摘要:大家好,本次为大家带来的项目是计算大学本学期绩点。首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的还是获取它的原理。最主要的是了解cookie的相关操作。 本篇目标 1.URL的获取 恩,博主来自山
阅读全文
摘要:爬取百度贴吧的帖子。与上一篇不同的是,这次我们需要用到文件的相关操作。 本篇目标 1.URL格式的确定 首先,我们先观察一下百度贴吧的任意一个帖子。 比如:http://tieba.baidu.com/p/3138733512?see_lz=1&pn=1,这是一个关于NBA50大的盘点,分析一下这个
阅读全文
摘要:本篇目标 1.URL的格式 在这里我们用到的URL是 http://mm.taobao.com/json/request_top_list.htm?page=1,问号前面是基地址,后面的参数page是代表第几页,可以随意更换地址。点击开之后,会发现有一些淘宝MM的简介,并附有超链接链接到个人详情页面
阅读全文
摘要:首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来。 本篇目标 糗事百科是不需要登录的,所以也没必要用到Cookie,另外糗事百科有的段子是附图的,我们把图抓下来图片不便于显示,那么我们就尝试过滤掉有图的段子吧。 好,现在我们尝试抓取一下糗事百科的热门
阅读全文
摘要:1.创建 Beautiful Soup 对象 2.四大对象种类 Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种: Tag NavigableString BeautifulSoup Comment 2.1 tag 2.2
阅读全文
摘要:Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。 在此之前呢
阅读全文
摘要:1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的服务器 服务器不存在 在代码中,我们需要用try-except语句来包围并捕获相应的异常。下面是一个例子,先感受下它的风骚 import urllib2 requset = urllib2.R
阅读全文
摘要:1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性。 另外,我们还有对付”反盗链”的方式,对付防盗链,服务器会识别headers中的referer是不是它自己,如果不是,有的
阅读全文
摘要:1.简单使用 2.运行结果是完全一样的,只不过中间多了一个request对象,推荐大家这么写,因为在构建请求时还需要加入好多内容,通过构建一个request,服务器响应请求得到应答,这样显得逻辑上清晰明确。 3.POST方式 4.GET方式
阅读全文
摘要:单例模式就是防止每个请求到来,都需要在内存里创建一个实例,再通过该实例执行指定的方法。 如果并发量大的话,内存里就会存在非常多功能上一模一样的对象。存在这些对象肯定会消耗内存,对于这些功能相同的对象可以在内存中仅创建一个,需要时都去调用.单例模式用来保证内存中仅存在一个实例!!! 通过面向对象的特性
阅读全文
摘要:1、异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! 需求:将用户输入的两个数字相加 2、异常种类 python中的异常种类非常多,每个异常专门用于处理某一项异常!!! 在python的异常中,有一个万
阅读全文
摘要:上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段、方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用。无论人或事物往往都有不按套路出牌的情况,Python的类成员也是如此,存在着一些具有特殊含义的成员,详情如下: 1. __doc_
阅读全文
摘要:类的所有成员在上一步骤中已经做了详细的介绍,对于每一个类的成员而言都有两种形式: 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能方法 私有成员和公有成员的定义不同:私有成员命名时,前两个字符是下划线。(特殊成员除外,例如:__init__、__call__、__dict__等) 私有成员
阅读全文
摘要:一、字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 由上述代码可以看出【普通字段需要通过对象来访问】【静态字段通过类访问】,在使用上可以看出普通字段和静态字段的归属是不同的。其在内容的存储方式类似如下图: 由上
阅读全文
摘要:今天我们来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)注:Java和C#来说只支持面向对象编程,而python比较灵活即支持面向对象编程也支持函数式编程 创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类
阅读全文
摘要:web实例 考虑有这么一个场景,根据用户输入的url的不同,调用不同的函数,实现不同的操作,也就是一个url路由器的功能,这在web框架里是核心部件之一。下面有一个精简版的示例: 首先,有一个commons模块,它里面有几个函数,分别用于展示不同的页面,代码如下: 1 2 3 4 5 6 7 8 9
阅读全文
摘要:Python之所以应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入。导入模块有一下几种方法: import module from module.xx.xx import xx from module.xx.xx import xx as rena
阅读全文
摘要:Python的字符串格式化有两种方式: 百分号方式、format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存。 百分号 1 tpl = "i am %s" % "alex" 2 #i am alex 3 4 tpl = "i am %s a
阅读全文
摘要:#!/usr/bin/env python #coding:utf-8 import time print time.time() print time.mktime(time.localtime()) print time.gmtime() #可加时间戳参数 print time.localtime() #可加时间戳参数 print time.strptime('2014-11-1...
阅读全文
摘要:对于序列中的元素进行筛选,最终获取符合条件的序列
阅读全文
摘要:遍历序列,对序列中每个元素进行操作,最终获取新的序列。 传入一个函数和一个list 1 # -*- coding: utf-8 -*- 2 3 li = [11, 22, 33] 4 5 new_list = map(lambda a: a + 100, li) 6 7 print new_list
阅读全文
摘要:最简单的模板是这样的 1 #-*-coding:utf-8-*- 2 3 def outer(func): 4 def inner(): 5 print 'before' 6 func() 7 print 'after' 8 # return r 9 return inner 10 ''' 11 d
阅读全文
摘要:--使用参数组可以传值列表,字典:格式 ********************3(4,){'age': '5', 'name': '3'}********************3(1, 3, 4){}********************123([1, 2, 3, 4, 5], {'age':
阅读全文
摘要:[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]][Finished in 0.2s] {1: 'a', 2: 'b'}<type 'dict'>[Finished in 0.2s] 风险 eval强大的背后,是巨大的安全隐患!!! 比如说,用户恶意输入下面的字符串 o
阅读全文
摘要:1.隐藏页面的广告窗口 document.getElementById("top_left").style.display="none"; 2.隐藏控件点击 document.getElementsByClassName("prefpanelgo")[0].click(); 3. 3.1.滚动条回到
阅读全文
摘要:转载至http://www.cnblogs.com/yicaifeitian/p/5198871.html 为了解决这个问题,我是查了很多资料,解决方案是百度出来的。抱歉,我忘记出处在哪了,代码如下: 虽然我对profile这个东西,不甚了解。但是我知道这个配置很重要。 同样使用selenium驱动
阅读全文
摘要:收藏在我的收藏看不到,只能copy了,转载至http://www.cnblogs.com/yicaifeitian/p/4749149.html 哈哈,我始终相信贴出来总会有人看。WebDriverWait 类位于selenium.webdriver.support.ui下面的例子很简单, 意思就是
阅读全文
摘要:1.测试文件foo.py 2.引入上文件,创建run-foo.py 3.运行结果 4.把foo.py的“__all__ = ['bar', 'baz']” 注释,运行正常 它不仅在第一时间展现了模块的内容大纲,而且也更清晰的提供了外部访问接口。
阅读全文
摘要:面源码: 抢购js脚本: Chrome: 1. 打开chrome扩展程序页 – chrome://extensions 2. 将刚才的自定义脚本保存为以user.js为后缀的 .js文件,例如test.user.js,加载扩展程序页。 名字一定要是manifest.json 同目录下:找个图片命名为
阅读全文
摘要:Selenium 是一个可以让浏览器自动化地执行一系列任务的工具,常用于自动化测试。不过,也可以用来给网页截图。目前,它支持 Java、C#、Ruby 以及 Python 四种客户端语言。如果你使用 Python,则只需要在命令行里输入“sudo easy_install selenium”并回车,
阅读全文
摘要:logger继承图 logger继承图 前言 在自动化测试实践过程中,必不可少的就是进行日志管理,方便调试和生产问题追踪,python提供了logging模块来进行日志的管理。下面我们就logging模块的学习和使用进行一个层层推进演示学习。 Python的logging模块提供了通用的日志系统,可
阅读全文
摘要:前言 在python selenium2自动化测试过程中,一个合适的报告是必须的,而HTMLTestRunner模块为我们提供了一个很好的报告生成功能。 什么是HTMLTestRunner HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展。它生成优美的HTM
阅读全文
摘要:前言 在进行日常的自动化测试实践中,我们总是需要将测试过程中的记录、结果等等等相关信息通过自动的手段发送给相关人员。python的smtplib、email模块为我们提供了很好的email发送等功能的实现。 纯文本邮件 在通常情况下,我们需要发送大量的纯文本类的邮件通知,或是发送概要性测试报告时,会
阅读全文
摘要:如何执行跨浏览器测试 如果我们使用selenium webdriver,那我们就能够自动的在IE、firefox、chrome、等不同浏览器上运行测试用例。 为了能在同一台机器上不同浏览器上同时执行测试用例,我们需要多线程技术。 下面我们基于python的多线程技术来尝试同时启动多个浏览器进行sel
阅读全文
摘要:在实际的自动化测试实践中,因为越来越多的站点接入https,使得我们原有的python selenium2自动化测试代码进行测试时,浏览器总是报安全问题,即便在浏览器选项中将被测网址加入信任网址也没用。 一般情况下,我们访问http站点时的代码如下: driver = webdriver.Firef
阅读全文
摘要:--待验证(以下是java脚本)
阅读全文
摘要:问题:页面代码中不存在target="_blank",怎么实现点击一个按钮,在新窗口中打开? WebElement link = element.findElement(By.tagName("a")); String href = link.getAttribute("href"); Javasc
阅读全文