response

会话技术——Session

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-01 14:31:55
目录 什么是Session? 实现原理 Session的操作 Session持久化处理 Session的细节 Session 什么是Session? 跳转到目录 Session是 服务器端技术 ,服务器在运行时可以为每一个用户的浏览器创建一个独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其他web资源时,其他web资源再从用户各自的session中取出数据为用户服务.总而言之,将 数据保存在服务器 . Session的特点 session 用于存储一次会话的多次请求的数据 session 数据存储在服务器中 session 可以存储任意类型,任意大小的数据 Session的原理 跳转到目录 Session其本质就是一个会话Cookie( 浏览器关闭后,Session就失效了 ) 使用Cookie和Session发送请求的内容 Session的操作 跳转到目录 一、 获取Session对象 request.getSession(true) : 获取Session对象,如果没有Session对象,直接创建一个新的返回,缺省值 request.getSession(false) : 获取Session对象,如果没有返回null request.getSession()

python爬虫---requests库的用法

那年仲夏 提交于 2020-02-01 07:20:19
本文转载自: https://www.cnblogs.com/mzc1997/p/7813801.html 作者:mzc1997 转载请注明该声明。 requests是 python 实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下,正常则说明可以开始使用了。 基本用法: requests.get()用于请求目标网站,类型是一个HTTPresponse类型 import requests response = requests.get( ' http://www.baidu.com ' ) print(response.status_code) # 打印状态码 print(response.url) # 打印请求url print(response.headers) # 打印头信息 print(response.cookies) # 打印cookie信息 print (response.text) #以文本形式打印网页源码 print(response.content) #以字节流形式打印 运行结果: 状态码:200 url:www.baidu.com headers信息 各种请求方式: import requests requests.get( ' http:

安装依赖以及页面解析

99封情书 提交于 2020-02-01 01:12:09
Date: 2019-06-19 Author: Sun 本节要学习的库有: 网络库:requests 页面解析库:Beautiful Soup 1 Requests库 ​ 虽然Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更简洁方便。 ​ Requests 是用 Python 语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 哦! ​ Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用:) ​ Requests 继承了urllib的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码 ​ requests 的底层实现其实就是 urllib3 ​ Requests的文档非常完备,中文文档也相当不错

Python——爬虫

送分小仙女□ 提交于 2020-02-01 00:14:58
参考资料 网络爬虫 (又被称为 网页蜘蛛,网络机器人 ,在FOAF社区中间,更经常的称为 网页追逐者 ),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 其实通俗的讲就是通过程序去获取web页面上自己想要的数据,也就是自动抓取数据 爬虫的本质 :模拟浏览器打开网页,获取网页中我们想要的那部分数据 浏览器打开网页的过程: 当你在浏览器中输入地址后,经过DNS服务器找到服务器主机,向服务器发送一个请求,服务器经过解析后发送给用户浏览器结果,包括html,js,css等文件内容,浏览器解析出来最后呈现给用户在浏览器上看到的结果 用户看到的浏览器的结果就是由HTML代码构成的,我们爬虫就是为了获取这些内容,通过分析和过滤html代码,从中获取我们想要资源(文本,图片,视频.....) 爬虫就是请求网站并提取数据的自动化程序。其中 请求 , 提取 , 自动化 是爬虫的关键! 爬虫的基本流程 发起请求 通过HTTP库向目标站点发起请求,也就是发送一个 Request ,请求可以包含额外的 header 等信息,等待服务器响应 Response 获取响应内容 如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型

Scrapy项目 - 项目源码 - 实现腾讯网站社会招聘信息爬取的爬虫设计

倾然丶 夕夏残阳落幕 提交于 2020-01-31 23:39:35
1.tencentSpider.py # -*- coding: utf-8 -*- import scrapy from Tencent.items import TencentItem #创建爬虫类 class TencentspiderSpider(scrapy.Spider): name = 'tencentSpider'#爬虫名字 allowed_domains = ['tencent.com']#容许爬虫的作用范围 # 定义开始的URL offset = 0 url = 'https://hr.tencent.com/position.php?&start=' #urll='#a' start_urls = [url + str(offset)] # 爬虫开始的URL def parse(self, response): # 继承 item = TencentItem() # 根节点 movies = response.xpath("//tr[@class='odd']|//tr[@class='even']") for each in movies: item['zhiwei']=each.xpath(".//td[@class='l square']/a/text()").extract()[0] item['lianjie'] = each.xpath("./

Postman使用手册4——API test

南楼画角 提交于 2020-01-31 07:23:28
一、Pre Request Scripts Postman v0.10+ 版本支持pre-request scripts。 prerequest script.png pre-request scripts是一个关联了收藏夹内request,并且在发送request之前执行的代码片段。这对于在request header中包含时间戳或者在URL参数中发送一个随机字符串都是非常有用的。 例如:如果要在request的header中包含一个时间戳,你可以设置一个环境变量由一个函数返回他的值。 postman.setEnvironmentVariable('timestampHeader',new Date()); 你可以在header中使 timestampHeader 变量,当request发送的时候,你的pre-request script将被执行,这个timestampHeader 变量的值将会替换{{timestampHeader}}。 注意:我们设置的环境对使用的环境变量必须是有效的。 二、Writing Tests 1.基本结构 ![Uploading prerequest script_871640.png . . .] Basic structure.png Postman给了你一个环境让你能够为每个request编写、执行你的test,而不用担心任何额外的设置。

Postman-常用方法集合

↘锁芯ラ 提交于 2020-01-31 06:07:40
postman常用方法集合: 1.设置环境变量 postman.setEnvironmentVariable("key", "value"); pm.environment.get("key", "value");//postman 5.0以上版本设置环境变量的方法 2.设置全局变量 postman.setGlobalVariable("key", "value"); pm.globals.set("variable_key", "variable_value");//postman 5.0以上版本设置全局变量方法 3.检查response body中是否包含某个string tests["Body matches string"] = responseBody.has("string_you_want_to_search"); pm.test("Body is correct", function () { pm.response.to.have.body("response_body_string"); });//5.0以上版本方法 4.检测JSON中的某个值是否等于预期的值 var data = JSON.parse(responseBody); tests["Your test name"] = data.value === 100; JSON.parse()方法

【爬虫学习笔记day60】7.2. scrapy-redis实战--有缘网分布式爬虫项目1

梦想与她 提交于 2020-01-31 05:38:42
文章目录 7.2. scrapy-redis实战--有缘网分布式爬虫项目1 有缘网分布式爬虫案例: 修改settings.py 查看pipeline.py 修改items.py 编写 spiders/youyuan.py 运行程序: 将项目修改成 RedisCrawlSpider 类的分布式爬虫,并尝试在多个Slave端运行。 7.2. scrapy-redis实战–有缘网分布式爬虫项目1 有缘网分布式爬虫案例: # clone github scrapy-redis源码文件 git clone https://github.com/rolando/scrapy-redis.git # 直接拿官方的项目范例,改名为自己的项目用(针对懒癌患者) mv scrapy-redis/example-project ~/scrapy-youyuan 修改settings.py 下面列举了修改后的配置文件中与scrapy-redis有关的部分,middleware、proxy等内容在此就省略了。 # -*- coding: utf-8 -*- # 指定使用scrapy-redis的调度器 SCHEDULER = "scrapy_redis.scheduler.Scheduler" # 指定使用scrapy-redis的去重 DUPEFILTER_CLASS = 'scrapy_redis

Postman-Tests模块测试方法记录

一曲冷凌霜 提交于 2020-01-31 05:27:31
用Postman的时候大多数测试结果是可以用Tests模块的测试方法来代替人工检查的,测试方法本质上是JavaScript代码,我们可以通过运行测试用例(测试脚本是在发送请求之后并且从服务器接收到响应时执行),观察结果是“PASS”还是“FAIL”就能判断测试结果: 在此记录一些常用方法备忘(当遇到需要判断返回值为A或B的时候,使用“||”符号): 1.设置环境变量 pm.environment.set("variable_key", "variable_value"); 2.将一个嵌套的对象设置为一个环境变量 var array = [1, 2, 3, 4]; pm.environment.set("array", JSON.stringify(array, null, 2)); var obj = { a: [1, 2, 3, 4], b: { c: 'val' } }; pm.environment.set("obj", JSON.stringify(obj)) 3.获得一个环境变量 pm.environment.get("variable_key"); 4.获得一个环境变量(其值是一个字符串化的对象) // These statements should be wrapped in a try-catch block if the data is coming from

postman——预处理和断言

浪尽此生 提交于 2020-01-31 05:19:47
一、预处理 Pre-request Scrip  1、Pre-request Script是集合中请求发送之前需要执行的代码片段   2、请求参数中包含一个随机数或者请求header中包括一个时间戳,或者你的请求参数需要加密 Pre-request Script常用代码   右侧提供了一些常用的代码       二、断言   postman断言是JavaScript语言编写的,在postman客户端指定区域编写即可。   断言会在请求返回之后,运行,并根据断言的pass\fail情况体现在最终测试结果中。    clear a global variable 清除全局变量 pm.globals.unset("variable_key"); Clear an environment variable 清除环境变量 pm.environment.unset("variable_key"); get a global variable 得到一个全局变量 pm.globals.get("variable_key"); get a variable 得到一个变量 pm.variables.get("variable_key"); Get an environment variable 得到一个环境变量 pm.environment.get("variable_key"); response