回调函数

利用线程池和回调函数爬虫

陌路散爱 提交于 2019-12-02 05:47:34
from concurrent.futures import ThreadPoolExecutor import requests import re import uuid pool = ThreadPoolExecutor(200) # 1.发送请求函数 def get_page(url): response = requests.get(url) return response # 2.解析主页获取视频ID号 def parse_index(response): id_list = re.findall( '<a href="video_(.*?)".*?>', response.text, re.S ) return id_list # 3.解析视频详情页获取真实 视频链接 def parse_detail(res): response = res.result() movie_detail_url = re.findall('srcUrl="(.*?)"', response.text, re.S)[0] print(f'往视频链接: {movie_detail_url}发送请求...') # 异步往视频详情页链接发送请求,把结果交给 pool.submit(get_page, movie_detail_url).add_done_callback(save_movie)

$.ajax 完整参数

╄→гoц情女王★ 提交于 2019-12-02 05:43:30
jquery中的ajax方法参数 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。 timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。 async: 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。 cache: 要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。 data: 要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看  processData选项。对象必须为key/value格式,例如: { foo1:"bar1", foo2:"bar2" } =>&foo1=bar1&foo2=bar2。 //如果是数组,JQuery将自动为不同值对应同一个名称

百度地图坐标转换及跨域

喜你入骨 提交于 2019-12-02 05:43:24
前言 调用 api将实际经纬度转换为百度坐标系的经纬度。 想要的效果 效果如图,左侧为百度地图,需要与右侧地图联动。 通过百度地图离线js调用,总是报跨域错误。以为是js版本不对,查了一下没问题。 网友这种方式处理的回调函数根本不起作用 //坐标转换完之后的回调函数 translateCallback = function ( data ) { if ( data . status === 0 ) { var marker = new BMap . Marker ( data . points [ 0 ] ) ; bm . addOverlay ( marker ) ; var label = new BMap . Label ( "转换后的百度坐标(正确)" , { offset : new BMap . Size ( 20 , - 10 ) } ) ; marker . setLabel ( label ) ; //添加百度label bm . setCenter ( data . points [ 0 ] ) ; } } setTimeout ( function ( ) { var convertor = new BMap . Convertor ( ) ; var pointArr = [ ] ; pointArr . push ( ggPoint ) ;

Promise基本使用及方法介绍

拟墨画扇 提交于 2019-12-02 05:34:44
含义 Promise是异步编程的一种解决方案,用于一个异步操作的最终完成(或失败)及其结果值的表示,比传统的回调函数方案更加合理。 描述 1.Promise对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你为异步操作的成功和失败分别绑定相应的处理方法(handlers)。 2.一个Promise有以下几种状态: (1)pending:意味着操作正在进行。 (2)fulfilled:意味着操作成功。 (3)rejected:意味着操作失败。 3.pending状态的Promise对下那个可能触发fulfilled状态并传递一个值给相应的状态处理方法,也可能触发失败状态(rejected)并传递失败信息。当其中任何一种情况出现时,Promise对象的then方法绑定的处理方法(handlers)就会被调用(then方法包含两个参数:onfulfilled 和 onrejected (可选参数),它们都是Function类型。 语法: var promise = new Promise((resolve,reject) => { if(){ /*异步操作成功*/ resolve(value); }else{ reject(error); } }); promise.then((value) => { //success },(error) =>

ES6知识点

℡╲_俬逩灬. 提交于 2019-12-02 03:54:41
ES6 var、let 及 const 区别? 全局申明的var变量会挂载在window上,而let和const不会 var声明变量存在变量提升,let和const不会 let、const 的作用范围是块级作用域,而var的作用范围是函数作用域 同一作用域下let和const不能声明同名变量,而var可以 同一作用域下在let和const声明前使用会存在暂时性死区 const 一旦声明必须赋值,不能使用null占位 声明后不能再修改 如果声明的是复合类型数据,可以修改其属性 Proxy Proxy 是 ES6 中新增的功能,它可以用来自定义对象中的操作。 Vue3.0 中将会通过 Proxy 来替换原本的 Object.defineProperty 来实现数据响应式。 let p = new Proxy(target, handler) target 代表需要添加代理的对象, handler 用来自定义对象中的操作,比如可以用来自定义 set 或者 get 函数。 let onWatch = (obj, setBind, getLogger) => { let handler = { set(target, property, value, receiver) { setBind(value, property) return Reflect.set(target,

JS基础-全局内置对象

谁都会走 提交于 2019-12-02 03:51:09
对象 JS中有那些内置对象 数据封装类对象 String、Array、Object、Boolean、Number 其他对象 Math、Date、RegExp、Error、Function、Arguments ES6 新增对象 Promise、Map、Set、Symbol、Proxy、Reflect 数组Array对象常用方法 修改器方法 下面的这些方法会 改变调用它们的对象自身的值 : Array.prototype.pop() 删除数组的最后一个元素,并返回这个元素。 Array.prototype.push() 在数组的末尾增加一个或多个元素,并返回数组的新长度。 Array.prototype.shift() 删除数组的第一个元素,并返回这个元素。 Array.prototype.unshift() 在数组的开头增加一个或多个元素,并返回数组的新长度。 Array.prototype.splice() 在任意的位置给数组添加或删除任意个元素。 Array.prototype.reverse() 颠倒数组中元素的排列顺序,即原先的第一个变为最后一个,原先的最后一个变为第一个。 Array.prototype.sort() 对数组元素进行排序,并返回当前数组。 Array.prototype.fill() 将数组中指定区间的所有元素的值,都替换成某个固定的值。 Array

js回调函数的简单理解

喜欢而已 提交于 2019-12-02 03:16:33
什么是回调?   A callback is a function that is passed as an argument to another function and is executed after its parent function has completed。   字面上的理解,回调函数就是传递一个参数化的函数,就是将这个函数作为一个参数传到另一个主函数里面, 当那一个主函数执行完之后,再执行传进去的作为参数的函数。走这个过程的参数化的函数 就叫做回调函数。 换个说法也就是被作为参数传递到另一个函数(主函数)的那个函数就叫做 回调函数 。 例子: 1.基本方法 <script > function doSomething(callback) { // … // Call the callback callback('stuff', 'goes', 'here'); } function foo(a, b, c) { // I'm the callback alert(a + " " + b + " " + c); } doSomething(foo); </script> 或者用匿名函数的形式: <script> function dosomething(damsg, callback){ alert(damsg); if(typeof callback ==

[nginx] nginx使用SNI功能的方法

ⅰ亾dé卋堺 提交于 2019-12-02 03:09:53
概念 我们已经知道什么SNI,已经如果为用户配置SNI。 [nginx] nginx使用SNI功能的方法 问题 通过配置,可以发现,针对每一个SSL/TLS链接, nginx都会动态的查找与加载找到正确的证书。 那么在这个过程中,与没有SNI配置的情况下,有什么性能异同呢? 通过对这不部分的源码分析,将给出答案。 (不关注源码的话,可以直接翻到后文查看“结论”章节。) 图 分析 如上图所示 1 模块 nginx使用两个模块(这里只针对http进行分析,stream请自行类推),ngx_openssl_module 与 ngx_http_ssl_module。其中前者为核心模块。后者为http模块。 核心模块会被master进程调用ngx_ssl_init()函数进行加载,完成全局处理,包括对openssl的初始化。 http模块将由http框架完成处理,可以分为配置阶段与connection的解析阶段。 2 配置阶段 见图中的红框“流程二”。这个阶段就是逐行处理配置文件的阶段。在这个阶段里,merge ssl server config的时候, http_ssl将判断是否配置了SNI功能。 如果没有配置,将调用ngx_ssl_certificate()函数加载证书链里边的所有证书 ,将其读进内存并保存在全局配置文件的ctx结构体呢。ctx结构体是openssl api中的全局上下文

PHP基础教程之数组函数大全整理

删除回忆录丶 提交于 2019-12-02 02:44:56
今天整理了一份 PHP开发中数组操作大全,包含有数组操作的基本函数、数组的分段和填充、数组与栈、数组与列队、回调函数、排序、计算、其他的数组函数共8个知识点,非常适合正在 学习PHP 的初学者,欢迎收藏打包带走。 一、数组操作的基本函数 数组的键名和值 array_values($arr); 获得数组的值 array_keys($arr); 获得数组的键名 array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被后面的覆盖) in_array("apple",$arr); 在数组中检索apple array_search("apple",$arr); 在数组中检索apple ,如果存在返回键名 array_key_exists("apple",$arr); 检索给定的键名是否存在数组中 isset($arr[apple]): 检索给定的键名是否存在数组中 数组的内部指针 current($arr); 返回数组中的当前单元 pos($arr); 返回数组中的当前单元 key($arr); 返回数组中当前单元的键名 prev($arr); 将数组中的内部指针倒回一位 next($arr); 将数组中的内部指针向前移动一位 end($arr); 将数组中的内部指针指向最后一个单元 reset($arr; 将数组中的内部指针指向第一个单元 each($arr);

回调函数和数组

泄露秘密 提交于 2019-12-02 01:41:18
array_filter() , array_map() , array_reduce() , array_walk()的用法比较 array_filter — 用回调函数过滤数组中的单元 说明:array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中,否则,将不返回任何值给结果数组。数组的键名保留不变。 参数说明: array :要循环的数组 callback:使用的回调函数 如果没有提供 callback 函数, 将删除 array 中所有等值为 FALSE 的条目。 flag :决定 callback 接收的参数形式 ARRAY_FILTER_USE_KEY - callback 接受键名作为的唯一参数 ARRAY_FILTER_USE_BOTH - callback 同时接受键名和键值 返回值:返回过滤后的数组。 例子1: function odd($var) { return($var & 1); } function even($var) { return(!($var & 1)); } $array1 =