python3 web测试模块selenium

selenium是一个用于web应用程序测试工具,selenium测试直接运行在浏览器中,就像真正的用户在操作一样,支持的浏览器包括IE(7,8,9,10,11),mozillafirefox,safari,googlechrom,opera等,可使用java,python等多种语言编写用例脚本。SeleniumPython绑定提供了一个简单的API,可以使用SeleniumWebDriver编写功能/验收测试。通过SeleniumPythonAPI,您可以直观地访问SeleniumWebDriver的所有功能。SeleniumPython绑定提供了一个方便的API来访问SeleniumWebDrivers,如Firefox,Ie,Chrome,Remote等。目前支持的Python版本是2.7,3.5及更高版本1、selenium安装配置pip安装:pipinstallseleniumwheel安装:#下载wheel安装文件:https://pypi.python.org/pypi/selenium/#downloadspipinstallselenium-3.13.0-py2.py...

python3之MongoDB

1、MongoDB简介MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。主要特点:MongoDB是一个面向文档存储的数据库,操作起来比较简单和容易。你可以在MongoDB记录中设置任何属性的索引(如:FirstName="Sameer",Address="8GandhiRoad")来实现更快的排序。你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上这就是所谓的分片。Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。MongoDb使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段。Mongodb中...
ymnets ymnets·2020-03-25

python3csv与xlsx文件操作模块(csv、xlsxwriter)

1、CSV介绍CSV,全称为Comma-SeparatedValues,它以逗号分隔值,其文件以纯文本形式存储表格数据,该文件是一个字符序列,可以由任意数目的记录组成,每条记录有字段组成,字段间分隔符是逗号或制表符,相当于结构化的纯文本形式,它比Excel文件更简洁,用来存储数据比较方便2、CSV常用类与方法csv.reader(csvfile,dialect='excel',**fmtparams)遍历CSV文件对象并返回,csvfiel可以是任何支持迭代器协议的对象,如果csvfile是一个文件对象,它需要指定newline=''csv.writer(csvfile,dialect='excel',**fmtparams)写入数据到csv文件中,csvfile可以是具有写入方法的任何对象,如果csvfiel是一个文件对象,应该用newline=''指定换行符(unix上位'',windows上位'')#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2018/6/2711:44#@Author:Py.qi#@File:csv_file1.p...

python3解析库pyquery

pyquery是一个类似jquery的python库,它实现能够在xml文档中进行jQuery查询,pyquery使用lxml解析器进行快速在xml和html文档上操作,它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便1、pyquery安装pip方式安装:$pipinstallpyquery#它依赖cssselect和lxml包pyquery==1.4.0-cssselect[required:>0.7.9,installed:1.0.3]#CSS选择器并将它转换为XPath表达式-lxml[required:>=2.1,installed:4.2.2]#处理xml和html解析库验证安装:In[1]:importpyqueryIn[2]:pyquery.textOut[2]:<module'pyquery.text'from'/root/pp1/.venv/lib/python3.6/site-packages/pyquery/text.py'>2、pyquery对象初始化pyquery首先需要传入HTML文本来初始化一个py...

python3之Django表单(一)

1、HTML中的表单在HTML种,表单是在<form>...</form>种的元素,它允许用户输入文本,选择选项,操作对象等,然后发送这些数据到服务器表单元素允许用户在表单种输入内容如,文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等。大多数情况下被用到的表单标签是输入标签(<input>),输入类型是由类型属性(type)定义的,大多数经常被用到的输入类型下面做简单介绍:(1)文本域(TextFields)文本域通过<inputtype="text">标签来设定,当用户要在表单种输入字母,数字等内容是,就会用到文本域,在大多数浏览器种,文本域的缺省宽度是20个字符:<form>姓名:<inputtype="text"name="username"><br></form>(2)密码字段密码字段通过标签<inputtype="password">来定义,密码字段字符不会明文显示,而是以星号或圆点替代:<form>...
ymnets ymnets·2020-03-25

python3Django模型(一)

1、模型概述模型是关于您的数据的唯一,明确的信息来源,它包含您正在存储的数据的重要字段和行为。通常,每个模型映射到单个数据库表。每个模型都是一个子类的python类django.db.models.Model模型的每个属性表示一个数据字段综上所述,Django为您提供了一个自动生成的数据库访问API。简单实例:在app下的models中创建person类:classperson(models.Model):first_name=models.CharField(max_length=30)last_name=models.CharField(max_length=30)first_name和last_name是模型的命名字段,每个字段都被指定为一个类属性,并且每个属性映射到一个数据表的列上,上面的person模型会创建一个如下的SQL数据库表语句:CREATETABLEmyapp_person("id"serialNOTNULLPRIMARYKEY,"first_name"varchar(30)NOTNULL,"last_name"varchar(30)NOTNULL);其中表的名称以...
ymnets ymnets·2020-03-25

【Python基础】装饰器的解释和用法

装饰器的用法比较简单,但是理解装饰器的原理还是比较复杂的,考虑到接下来的爬虫框架中很多用到装饰器的地方,我们先来讲解一下。我们定义了一个函数,没有什么具体操作,只是返回一个固定值请注意一下缩进defsample():return1print(sample())函数内部的变量和函数外的变量是不同的我们看一下下面的例子,locals()和globals()方法会得到局部变量和全局变量我们可以在函数中调用全局变量,但是无法在函数中改变全局变量的值global_string='Thisisaglobalstring!'defsample():local_string='Thisisalocalstring!'print(locals())print(globals())sample()下面的inner函数执行时,由于x不是局部变量,函数会自动扩大搜索范围,找到outer函数中的x。outer中的inner也是类似与一个变量,不过这个变量是在outer中定义的,所以会直接搜索到。defouter():x=1definner():print(x)inner()outer()下面的add和sub是标...

爬虫入门【9】Python链接Excel操作详解-openpyxl库

Openpyx是一个用于读写Excel2010各种xlsx/xlsm/xltx/xltm文件的python库。现在大多数用的都是office2010了,如果之前之前版本的可以使用xlrd读,xlwt写,这里就不介绍了。fromopenpyxlimportWorkbookwb=Workbook()#创建一个工作簿ws=wb.active#获取工作的激活工作表ws['A1']=42#在A1中插入内容ws.append([1,2,3])#这里其实是在第二行插入了3个数字,占用了三个单元格importdatetimews['A2']=datetime.datetime.now()#在A2中插入了当前时间,把上一句的那个1挤掉了wb.save('sample.xlsx')#保存到当前目录创建一个workbook一般创建workbook后至少会有一个worksheet,我们可以通过active属性来获取。我们还可以通过create_sheet()方法来创建新的worksheet。一般默认创建的sheet的名字是序列化的,我们可以更改title属性来设置想要的名称。一旦我们指定了名称,可以使用key...

爬虫实战【11】Python获取豆瓣热门电影信息

之前我们从猫眼获取过电影信息,而且利用分析ajax技术,获取过今日头条的街拍图片。今天我们在豆瓣上获取一些热门电影的信息。首先,我们先来看一下豆瓣里面选电影的页面,我们默认选择热门电影,啥都不点了。【插入图片,豆瓣热门电影页面】在选电影这个框中其实有很多标签的,这个其实可以在url设置,后面讲,现在就用热门好了。下面每部电影罗列出来,包括电影封面,评分,电影名称等信息。最下面是加载更多选项,其实看到这个加载更多,我就意识到这个页面肯定是用ajax技术实现的,就跟今日头条街拍那次一样,只不过不采用向下滚动,而是点击按钮加载的方式。是不是这样的?我们看一下源代码。果然都是一些js,我就不放图了,大家自己看一下就好了。那么来看一下XHR了,果然下面有几个json文件,哈哈,猜测是正确的。【插入图片,XHR分析】这次的json信息很简介,一个subjects下面就是各个电影的具体内容了,我们通过json的loads方法,就能够得到里面的信息了。仍然是通过requests库来获取json信息,消息头的话,我们来看一下:【插入图片,消息头分析】这个url的前面部分是固定的,后面是一些参数,我们可以...

【穿插】Python基础之文件、文件夹的创建,对上一期代码进行优化

在上一期妹子图的爬虫教程中,我们将图片都保存在了代码当前目录下,这样并不便于浏览,我们应该将同一个模特的图片都放在一个文件夹中。今天我们就简单讲一下Python下如何创建文件、文件夹,今后就可以用上了。绝对路径比较好理解,就是最完整的路径,包含盘符的,比如D:userabc.txt,表示的就是D盘目录下,user文件夹中的abc.txt文件。当然在代码中,是特殊字符,我们需要两个来表示该路径,open('D:userabc.txt')。相对路径,指的是相对当前路径来说的,假如当前路径为D:userpublic。当前路径下的文件可以直接输入文件名来访问,比如open(abc.txt),表示打开绝对路径为D:userpublicabc.txt的文件。当前路径下的文件夹中的文件,可以这样来访问,比如open('/test/abc.txt'),表示打开绝对路径为D:userpublicestabc.txt的文件。如何获取当前路径呢?导入os模块,os的getcwd()方法会返回代码所在的当前目录。这里返回的是绝对路径。importoscwpath=os.getcwd()print(cwpath...

爬虫实战【5】送福利!Python获取妹子图上的内容

【插入图片,妹子图首页】哈,只敢放到这个地步了。今天给直男们送点福利,通过今天的代码,可以把你的硬盘装的满满的~下面就开始咯!假如我们知道某张图片的url,如何获取到这张图片呢?先看一下最简单的方法:【插入图片,单页url】我们获取到图片的内容,通过二进制流写入到文件中,并保存起来。这次偷懒啦,将所有图片都保存在当前目录下。importrequestsurl='http://i.meizitu.net/2017/11/24a02.jpg'pic=requests.get(url).contentpic_name=url.split(r'/')[-1]withopen(pic_name,'wb')asf:f.write(pic)竟然出错了,得到的图片竟然是这样的:【插入图片,反爬虫-防盗链】看来现在各种网站都开始反爬虫了,我们尝试一下加入一些伪装信息。估计是很多骚动青年都拿妹子图来练习爬虫了。。。经过探索,加入referer头信息,才能继续下载,这个referer对应的内容是该图片的母地址,也就是存放这个图片的网页的地址。可以啦,我们得到图片了,代码如下,做了一些修改,不直接打开图片地址...

爬虫实战【4】Python获取猫眼电影最受期待榜的50部电影

前面几天介绍的都是博客园的内容,今天我们切换一下,了解一下大家都感兴趣的信息,比如最近有啥电影是万众期待的?猫眼电影是了解这些信息的好地方,在猫眼电影中有5个榜单,其中最受期待榜就是我们今天要爬取的对象。这个榜单的数据来源于猫眼电影库,按照之前30天的想看总数量从高到低排列,取前50名。我们先看一下这个表单中包含什么内容:【插入图片,6猫眼榜单示例】具体的信息有”排名,电影海报,电影名称,主演,上映时间“以及想看人数,今天我们主要关注前面5个信息的收集。之前我们用正则表达式,在网页源代码中匹配了某一篇文章的标题,大家可能还有印象,这次我们还要用正则表达式来一次爬取多个内容。另外,也尝试一下requests库。我们先分析一下这个榜单页面,跟之前博客园的大概是类似的。url=http://maoyan.com/board/6?offset=0上面是第一页的榜单地址,我们一眼就关注到了offset这个值,毫无疑问,后面的页面都是将offset改变就能获取到了。来看一下第二页:http://maoyan.com/board/6?offset=10不一样的地方,offset每次增加了10,而不是...

爬虫实战【3】Python-如何将html转化为pdf(PdfKit)

前面我们对博客园的文章进行了爬取,结果比较令人满意,可以一下子下载某个博主的所有文章了。但是,我们获取的只有文章中的文本内容,并且是没有排版的,看起来也比较费劲。。。咋么办的?一个比较好的方法是将文章的正文内容转化成pdf,就不要考虑排版的事情了,看起来比较美观,也不会丢失一些关键信息。python中将html转化为pdf的常用工具是Wkhtmltopdf工具包,在python环境下,pdfkit是这个工具包的封装类。如何使用pdfkit以及如何配置呢?分如下几个步骤。1、下载wkhtmltopdf安装包,并且安装到电脑上,在系统Path变量中添加wkhtmltopdf的bin路径,以便于pdfkit的调用。下载地址:https://wkhtmltopdf.org/downloads.html请根据自己的系统版本,选择合适的安装包。如果没有装C语言库,建议选择Windows下的第二种。【插入图片pdf1】2、在pycharm中安装pdfkit库,过程就不介绍啦,前面讲过类似的内容。3、在pycharm中安装whtmltopdf库。这个和第一步中的安装包是两个东西,请区别开来。对于简单的...

爬虫实战【2】Python博客园-获取某个博主所有文章的URL列表

首先,我们来分析一下,在博主的首页里,每个文章的标题在网页源码中是什么样子的。【插入图片,文章标题1】【插入图片,文章标题2】通过这两个图片我们可以看出,博文标题所在的标签为,并且具有class属性为"postTitle2",其href属性就指向这篇博文的地址。如下面代码所示:<aid="homepage1_HomePageDays_DaysList_ctl01_DayList_TitleUrl_0"class="postTitle2"href="http://www.cnblogs.com/over140/p/5462580.html">【Swift2.2】iOS开发笔记(三)</a>那么,我们的思路就可以是这样的:找到所有展示博文标题的a标签,获取a标签的href属性,那么就可以得到所有文章的url列表。但是目前存在一个问题,所有的博文标题没有在同一个页面中展示出来。【插入图片,18页】可以看出,农民伯伯的文章一共有18页,每一页中存在一些文章标题和摘要,那么我们就要遍历这18页...

爬虫实战【1】使用python爬取博客园的某一篇文章

博客园比较适合爬虫初学者。我们第一个目标是爬取某个博主的所有博文。第一步,获取某一篇文章。第二步,获取该博主所有文章的url列表。第三步,下载所有文章。第一次实战,我们以博客园为例。Cnblog是典型的静态网页,通过查看博文的源代码,可以看出很少js代码,连css代码也比较简单,很适合爬虫初学者来练习。 博客园的栗子,我们的目标是获取某个博主的所有博文,今天先将第一步。 举个栗子,我们参考‘农民伯伯’的博客文章吧,哈哈。他是我关注的一个博主。http://www.cnblogs.com/over140/p/4440137.html这是他的一篇名为“【读书笔记】长尾理论”的文章。我们如果想要存储这篇文章,需要保存的内容首先是文章的标题,再就是文章的正文。 文章的标题怎么获取的?先看一下文章标题在网页源代码中的位置是如何的。  可以看出来,标题的文字内容是包含在一个a标签里面的,我们将这个标签打印出来:<aid="cb_post_title_url"class="postTitle2"h...
首页上一页...387388389390391下一页尾页