response

python后端学习第一天:了解基础

邮差的信 提交于 2020-03-08 22:38:36
""" 这里是服务器 """ import socket # 这个程序就是一个套路程序, 套路程序没必要思考为什么会是这样 # 记住套路, 能用, 就够了 # 运行这个程序后, 浏览器打开 localhost:2000 就能访问了 # # 服务器的 host 为空字符串, 表示接受任意 ip 地址的连接 # post 是端口, 这里设置为 2000, 随便选的一个数字 host = '' port = 2000 # s 是一个 socket 实例 s = socket . socket ( ) # s.bind 用于绑定 # 注意 bind 函数的参数是一个 tuple s . bind ( ( host , port ) ) # 用一个无限循环来处理请求 while True : # 套路, 先要 s.listen 开始监听 # 注意 参数 5 的含义不必关心 s . listen ( 5 ) # 当有客户端过来连接的时候, s.accept 函数就会返回 2 个值 # 分别是 连接 和 客户端 ip 地址 connection , address = s . accept ( ) # recv 可以接收客户端发送过来的数据 # 参数是要接收的字节数 # 返回值是一个 bytes 类型 request = connection . recv ( 1024 ) # bytes

前端面试笔试复习(4)

淺唱寂寞╮ 提交于 2020-03-08 21:00:30
DOM 总结 25、DOM 事件模型是什么? 冒泡和捕获 如果这个元素是被点击的元素,那么捕获不一定在冒泡之前,顺序是由监听顺序决定的。 26、事件委托是什么,有什么好处? 事件委托就是利用 冒泡原理 ,将事件绑定到节点的 父级节点 上,从而触发事件中代码的效果。 事件委托的好处: 1)提高js性能; 2)后续添加的元素同样能触发事件; 代码: var ul = document . querySelector ( 'ul' ) ul . addEventListener ( 'click' , function ( e ) { var el = e . target while ( el . tagName !== 'LI' ) { if ( el === ul ) { el = null break } el = el . parentNode } if ( el ) { console . log ( '你点击了 li 元素' ) } else { console . log ( '你点击的不是 li 元素' ) } } ) 27、移动端的触摸事件了解吗? touchstart、 touchmove、 touchend、 touchcancel 模拟 swipe 事件:记录两次 touchmove 的位置差,如果后一次在前一次的右边,说明向右滑了。 HTTP 复习: 28

增量式爬取阳光热线网

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-08 19:48:44
- 增量式 - 概念:用于监测网站数据更新的情况。 - 核心机制:去重。redis的set实现去重- 总结反爬机制: - robots - UA伪装 - 验证码 - 代理 - cookie - 动态变化的请求参数 - js加密 - js混淆 - 图片懒加载 - 动态数据的捕获 - seleium:规避检测1、创建scrapy startproject 项目名2、创建虫子scrapy genspider -t crawl zjs www.xxx.com3、配置文件UA伪装、日志等级、robots4、虫子里面解析电影名称、详情页url、描述5、items里面配置6、虫子里面导入items7、pipelines管道里面配置输入数据8、配置文件开启管道9、执行虫子scrapy crawl zjs10、redis启动客户端:redis-cli.exe 查询所有的keys:keys * 查询长度:llen moiveData 查询数据:smembers movie_detail_urls 清空:flushall zjs.py # -*- coding: utf-8 -*-import scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Rulefrom

在Vue中对外部资源进行访问

浪子不回头ぞ 提交于 2020-03-08 19:46:14
1.fetch fetch号称是AJAX的替代品,是在ES6出现的,使用了ES6中的promise对象。Fetch是基于promise设计的。Fetch的代码结构比起ajax简单多了,参数有点像jQuery ajax。但是,一定记住 fetch不是ajax的进一步封装,而是原生js,没有使用XMLHttpRequest对象 。 fetch的优点: 1.符合关注分离,没有将输入、输出和用事件来跟踪的状态混杂在一个对象里 2.更好更方便的写法 具体的用法是: fetch('http://localhost:8181/messageBoard/messages', {method: 'GET', headers: {'content-type': 'application/json'}}) .then(response => response.json()) .then(json => {   console.log(json); }) 1.axios Vue2.0之后,尤雨溪推荐大家用axios替换JQuery ajax,想必让axios进入了很多人的目光中。 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,本质上也是对原生XHR的封装,只不过它是Promise的实现版本,符合最新的ES规范,它本身具有以下特征: 1.从浏览器中创建

Django进阶之中间件

夙愿已清 提交于 2020-03-08 13:20:33
中间件简介 在http请求 到达视图函数之前 和视图函数return之后,django会根据自己的规则在合适的时机执行中间件中相应的方法。 中间件的执行流程 1、执行完所有的request方法 到达视图函数。 2、执行中间件的其他方法 2、经过所有response方法 返回客户端。 注意:如果在其中1个中间件里 request方法里 return了值,就会执行当前中间的response方法,返回给用户 然后 报错。不会再执行下一个中间件。 自定义中间件 1、在porject下创建自定义py文件 1 from django.utils.deprecation import MiddlewareMixin 2 class Middle1(MiddlewareMixin): 3 def process_request(self,request): 4 print("来了") 5 def process_response(self, request,response): 6 print('走了') View Code 2、在setings文件中注册这个py文件 django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件 1 MIDDLEWARE = [ 2 'django.middleware.security

day40_Cookie

只谈情不闲聊 提交于 2020-03-08 08:40:49
会话技术 会话: 一次会话中包含多次请求和响应。一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能 在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cookie 服务器端会话技术:Session 使用步骤: 1. 创建Cookie对象,绑定数据 new Cookie(String name, String value) 2. 发送Cookie对象 response.addCookie(Cookie cookie) 3. 获取Cookie,拿到数据 Cookie[] request.getCookies() 实现原理 基于响应头set-cookie和请求头cookie实现 cookie的细节 1. 一次可不可以发送多个cookie? 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。 //1.创建Cookie对象 Cookie c1 = new Cookie("msg","hello"); Cookie c2 = new Cookie("name","zhangsan"); //2.发送Cookie response.addCookie(c1); response.addCookie(c2); 2. cookie在浏览器中保存多长时间? 默认情况下,当浏览器关闭后,Cookie数据被销毁

C# String.Format方法

一曲冷凌霜 提交于 2020-03-08 07:44:16
一、定义 String.Format是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项。 如: (1) string p1 = "Jackie"; string p2 = "Aillo"; Response.Write(String.Format("Hello {0}, I'm {1}", p1, p2)); (2) Response.Write(String.Format("Hello {0}, I'm {1}", "Jackie", "Aillo")); 这二者的效果是一样的。都是将最后面的两项的值分别替换第一项的{0}和{1}。 输出的结果是:Hello Jackie, I'm Aillo 二、String.Format的多格式定义: 这里所谓的多格式是指一个格式项中可以定义1~3个格式参数,每种格式参数用分号(;)隔开。带2个和3个格式参数的格式项所对应的值必须是数值类型的,这样才能判断是否为负数、正数、零。 带1个格式参数: //以科学计数法的格式输出 double p1 = 1000000; Response.Write(String.Format("{0:E2}", p1)); 带2个格式参数: /*当格式项对应的值为非负数,则选择第一种格式;值为负数则选第二种格式*/ double p1 = 10000; double p2 =

爬虫(一)request模块的使用

爱⌒轻易说出口 提交于 2020-03-08 06:40:58
requests模块的学习 使用前 pip install request 发送get, post请求,获取响应 response = requests.get(url) response = requests.post(url, data = {请求体的字典}) response的方法 response.text – 往往出现乱码,出现乱码时在前面加一句:response.encoding = “utf-8” response.content.decode() – 把响应的二进制流转化为str类型 response.request.url #发送请求的URL地址 response.url #response响应的URL地址 response.request.headers #请求头 response.headers #响应请求 获取网页源码的正确方式 (依次尝试以下三种方法,一定有一个可以正确获取解码后的字符串) response.content.decode() response.content.decode(“gbk”) response.text 发送header请求 为了模拟浏览器,不被服务器阻拦,获取和浏览器一模一样的内容 headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64)

[Python爬虫] 十、Scrapy 框架

时光总嘲笑我的痴心妄想 提交于 2020-03-08 06:14:29
往期内容提要: [Python爬虫] 一、爬虫原理之HTTP和HTTPS的请求与响应 [Python爬虫] 二、爬虫原理之定义、分类、流程与编码格式 [Python爬虫] 三、数据抓取之Requests HTTP 库 [Python爬虫] 四、数据抓取之HTTP/HTTPS抓包工具Fiddler [Python爬虫] 五、数据提取之正则表达式re模块 [Python爬虫] 六、数据提取之XPath与lxml类库 [Python爬虫] 七、结构化数据提取之JSON与JsonPATH [Python爬虫] 八、动态HTML处理之Selenium与PhantomJS [Python爬虫] 九、机器视觉与机器图像识别之Tesseract 一、Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取。 这是因为 Scrapy 使用了 Twisted['twɪstɪd]异步网络框架,可以加快我们的下载速度。 异步:调用在发出之后,这个调用就直接返回,不管有无结果 非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。 二、Scrapy的安装介绍 Scrapy框架官方网址: http://doc.scrapy.org/en/latest Scrapy中文维护站点:

Django基础之中间件

◇◆丶佛笑我妖孽 提交于 2020-03-08 03:29:54
1. 引入 在之前学习的过程中,已经学会了给视图函数加装饰器来判断用户是否登录,把没有登录的用户请求跳转到登录页面。 我们通过给几个特定视图函数加装饰器实现了这个需求。 但是以后添加的视图函数可能也需要加上装饰器,这样显得稍微有些繁琐。 但是,通过中间件就可以采用更适宜的方式来实现给所有类似请求都做相同相同操作的功能了。 2. 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。 说的简单一点,中间件就是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在处理请求的特定时间去执行这些方法。 我们一直都在使用中间件,只是没有注意到而已,打开django项目的setting.py文件,可以看到MIDDLEWARE配置项。 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware