分类: 软件开发

js 获取重定向后的地址, 使用ajax请求数据, js获取url中的参数值

js 获取重定向后的地址, 使用ajax请求数据

var link = ‘https://player.vimeo.com/progressive_redirect/playback/696349232/rendition/360p?loc=external&oauth2_token_id=1027659655&signature=405ffb945893ad5f05c543d7665ded03ae2dba2a8b8851ecbb309f63803ad85a’
var xhr = new XMLHttpRequest();
xhr.open(‘GET’, link , true);
xhr.onload = function () {
console.log(xhr.responseURL); // http://example.com/test
}
xhr.send(null)

python scrapy 安装 使用 配置pipeline、item、settings,浅谈scrapy去重机制,Python:Scrapy传入自定义参数运行,yield meta 方法传递参数 ,Python中requests的会话保持session详解

scrapy startproject 项目名
cd 项目名, # 进入项目,此目录是创建爬虫项目时通过模板自动生成。
scrapy genspider 文件名 域名

MongoDB python scrapy保存到元数据库 navicat

模糊搜索查找
{title: {$regex:/00|jk/}}

忽略转义大小写等模糊查找 {title: {$regex:/hd/,$options:”imsx”}}
{$or:[{title: {$regex:/hd/,$options:”imsx”}} ,{description: {$regex:/jk/,$options:”imsx”}} ]}

多条件or或者查找
{ $or : [{“title” : /.*波多.*/i}, {“description” : /.*jk.*/i}] }

时间范围内
({“START_TIME”:{“$gte”:ISODate(“2021-08-03 07:59:06″),”$lte”:ISODate(“2021-09-01 08:30:46”)}})

复合条件查找
关系数据库:select * from where(state1=11 and state2=22) or value >300
MongoDB数据库:db.getCollection(‘testOrAnd’). find(
{$or:[{$and:[{“state1”:11},{“state2”:22}]},{“value”:{$gte:300}} ] }
)

准确查询
db.user.find({$or:[{name:{$eq:’小博’}},{name:{$eq:’测试小博’}}]})

$exists:查询是否存在某个字段
因为mongodb是非关系型数据库,因此,每条记录可能包含的字段都不一样,不同的数据之间可能存在一些字段没有写入值,想要筛选某个字段是否存在的时候,就可以使用$exists去进行筛选。
存在
db.getCollection(“user”).find({age:{$exists:1}})
db.getCollection(“user”).find({age:{$exists:true}})
不存在
db.getCollection(“user”).find({age:{$exists:0}})
db.getCollection(“user”).find({age:{$exists:false}})

参考链接:https://huaweicloud.csdn.net/63356eadd3efff3090b56b38.html

$regex操作符的介绍
MongoDB使用$regex操作符来设置匹配字符串的正则表达式,使用 PCRE(Pert Compatible Regular Expression)作为正则表达式语言。
regex操作符
{:{$regex:/pattern/,$options:’’}}
{:{$regex:’pattern’,$options:’’}}
{:{$regex:/pattern/}}
正则表达式对象
{: /pattern/}
$regex与正则表达式对象的区别:
在$in操作符中只能使用正则表达式对象,例如:{name:{$in:[/^joe/i,/^jack/}}
在使用隐式的$and操作符中,只能使用$regex,例如:{name:{$regex:/^jo/i, $nin:[‘john’]}}
当option选项中包含X或S选项时,只能使用$regex,例如:{name:{$regex:/m.*line/,$options:”si”}}

$regex操作符的使用
$regex操作符中的option选项可以改变正则匹配的默认行为,它包括 i, m, x以及S四个选项,其含义如下
i 忽略大小写,{{$regex/pattern/i}},设置i选项后,模式中的字母会进行大小写不敏感匹配。
m 多行匹配模式,{{$regex/pattern/,$options:’m’},m选项会更改^和$元字符的默认行为,分别使用与行的开头和结尾匹配,而不是与输入字符串的开头和结尾匹配。
x 忽略非转义的空白字符,{:{$regex:/pattern/,$options:’m’},设置x选项后,正则表达式中的非转义的空白字符将被忽略,同时井号(#)被解释为注释的开头注,只能显式位于option选项中。
s 单行匹配模式{:{$regex:/pattern/,$options:’s’},设置s选项后,会改变模式中的点号(.)元字符的默认行为,它会匹配所有字符,包括换行符(\n),只能显式位于option选项中。
使用$regex操作符时,需要注意下面几个问题:
i,m,x,s可以组合使用,例如:{name:{$regex:/j*k/,$options:”si”}}
在设置索弓}的字段上进行正则匹配可以提高查询速度,而且当正则表达式使用的是前缀表达式时,查询速度会进一步提高,例如:{name:{$regex: /^joe/}

最全的Python虚拟环境使用方法

常用命令

pipenv install:
若项目目录中虚拟环境未创建且无Pipfile文件,将安装虚拟环境并创建Pipfile文件
若项目目录中虚拟环境未创建且有Pipfile文件,将根据Pipfile文件来安装相应python版本和依赖包
若项目目录中虚拟环境已创建且有Pipfile文件,将根据Pipfile文件来安装依赖包

pipenv install xx::安装python包
pipenv uninstall xx::卸载python包
pipenv shell:进入虚拟环境(项目目录下)
exit:退出虚拟环境
pipenv graph:显示包依赖关系
pipenv –venv:显示虚拟环境安装路径

1. 使用pip
pip install virtualenv
2. 创建运行环境
virtualenv [虚拟环境名称]
virtualenv venv

#如果不想使用系统的包,加上–no-site-packeages参数
virtualenv –no-site-packages 创建路径名
3. 激活环境
linux:

$ cd venv
$ source ./bin/activate
Windows 10:

> cd venv
> .\Scripts\activate.bat
4. 退出环境
linux:

$ deactivate

Windows 10:

> .\Scripts\deactivate.bat

5. 删除环境
没有使用virtualenvwrapper前,可以直接删除venv文件夹来删除环境

6. 使用环境
进入环境后,一切操作和正常使用python一样 安装包使用pip install 包

python生成exe文件

1、安装Pyinstaller,在cmd窗口,输入指令“pip install pyinstaller”进行网络安装。

2、使用指令“pyinstaller -F D:\\文件夹\xxx.py”生成exe文件

-F生成的有命令框,-Fw生成的没有命令框

3、等待生成完毕后,回到源文件目录,在dist目录下,找到生成的exe文件,即可完成Python生成exe文件操作。