js获取当前url

Python——爬虫

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

让前端监控数据采集更高效

痴心易碎 提交于 2020-01-30 02:55:18
随着业务的快速发展,我们对生产环境下的问题感知能力越来越关注。作为距离用户最近的一层,前端的表现是否可靠、稳定、好用,很大程度上决定着用户对整个产品的体验和感受。因此,对于前端的监控不容忽视。 搭建一套前端监控平台需要考虑的方面很多,比如数据采集、埋点模式、数据处理和分析、报警以及监控平台在具体业务中的应用等等。在这所有环节中,准确、完整、全面的数据采集是一切的前提,也为后续的用户精细化运营提供基础。 前端技术的日新月异给数据采集也带来了变化和挑战,传统的手工打点模式已经不能满足需求。如何在新的技术背景下让前端数据采集工作更加完善、高效,是本文讨论的重点。 前端监控数据采集 在采集数据之前,首先要考虑采集什么样的数据。我们重点关注两类数据,一类是与用户体验相关的,如首屏时间、文件加载时间、页面性能等;另外是帮助我们及时感知产品上线后是否出现异常的,比如资源错误、API 响应时间等。具体来说,我们对前端的数据采集具体主要分为: 路由切换 (href、hashchange、pushState) JsError 性能 (performance) 资源错误 API 日志上报 路由切换 Vue、React、Angular 等前端技术的快速发展使单页面应用盛行。我们都知道,传统的页面应用是用一些超链接来实现页面切换和跳转的,而单页面应用是使用各自的路由系统来管理前端的每一个页面切换,例如

Node.JS实战58:写一套反爬虫系统!

让人想犯罪 __ 提交于 2020-01-29 12:08:07
爬虫,网络安全最大的威胁之一! 根据爬取数据类型而分,爬虫有不少种类,比如爬取Email地址的、爬取商品价格的、爬取图片的,而最多的是爬取内容的,内容数据爬虫是为泛滥的! 爬虫让很多人对其深感苦恼,今天的Node.JS实战,将实现一种防护性能很强的反爬虫系统。 首先展示防护效果,然后付上完整代码,以了解实现方法。 防护效果展示 根据两个核心思路进行效果展示如下: 1、 字体加密 创建自定义字体库,将字体进行加密。 举一个最直白的例子: 比如要在网页中显示文字:“我是我,你是你,她是她”,在正常的情况下,网页中就是存在这几个字,爬虫当然可以爬取。 我们要实现的效果是,让这几个字不存在,网页源码中可能是: 但是在网页中可以正常显示: 但是却不可复制,复制后,全部或部分内容将不能正常显示: 2、 字体防破解 单纯的字体加密,是不太难被破解的,因为上述的“密文乱码符号”,其实也就是一种对应关系,例如:“A”对应“啊”,“B”对应“不”。只要获得足够的对应关系,替换就可以破解还原出原内容。 具体实施时,可以从网页中获取字体文件。 如TTF,通过格式转换,化为TTX,即可得到对应关系。 也可以手动记录对应关系。 那么对于这两种破解,我们也需要进行防护。 1、防止字体文件被下载; 动态字体路径: 注意以下两图,不同的字体路径: 即:每次访问都是不同的字体路径,而且,此动态路径文件是不可下载的:

Web框架本质

被刻印的时光 ゝ 提交于 2020-01-25 17:34:50
Web框架本质 1.本质   对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 2.原始版Web import socket sk = socket.socket() sk.bind(("127.0.0.1", 80)) sk.listen() while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"OK") conn.close()   我们在浏览器上输入:http://127.0.0.1/ 就可以看到服务端发来的"ok"了。可以说Web服务本质上都是在这十几行代码基础上扩展出来的。用户的浏览器一输入网址,会给服务端发送数据,那浏览器会发送什么数据?怎么发?这个谁来定? 这个规则就是HTTP协议,以后浏览器发送请求信息也好,服务器回复响应信息也罢,都要按照这个规则来。HTTP协议主要规定了客户端和服务器之间的通信格式,那HTTP协议是怎么规定消息格式的呢?让我们首先打印下我们在服务端接收到的消息是什么。    import socket sk = socket.socket() sk.bind(("127.0.0.1", 80)) sk.listen(5) while True: conn, addr = sk.accept() data

uniapp中使用微信jssdk

我与影子孤独终老i 提交于 2020-01-24 23:38:36
在做自定义分享时,用到了微信 jssdk ,记录一下。 声明:本文演示 uniapp 中使用 jssdk ,示例为网页自定义分享 npm 方式使用下方指令进行安装, 正文部分 为非 npm 方式。 npm install jweixin-module --save 1、下载导入jssdk文件 下载链接: https://www.lanzous.com/i8ujkvi 下载后放在项目中,具体放置位置可自行选择,比如直接放在根目录,或者放在 components 目录,如下是我的参考截图: 2、在项目中引用 为了方便使用,我们单独出一个微信相关的 js 文件,进行相关的初始化等操作。 wechat.js // 自己封装的 uni.request 工具类var request = require("./jsTools/request.js");var jweixin = require('./components/jweixin-module/index.js');export default { //判断是否在微信中 isWechat: function() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/micromessenger/i) == 'micromessenger') { //

踩坑

梦想的初衷 提交于 2020-01-15 11:38:18
IE兼容 刚来的时候做页面,在IE上排列出现错乱,发现是css中li的选择问题 li:first-child li:first-of-type 在ie上会失效 所以改成了li+li 相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。 溢出文字省略号显示 做后台系统的时候,表格里的标题要做溢出用省略号显示 .table-info table .txt{ max-width: 281px; position: relative; /* display: block; */ word-break:keep-all;/* 不换行 */ white-space:nowrap;/* 不换行 */ overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容*/ text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用。*/ height; 20px; line-height: 20px; } <tr> <td width="6%">序</td> <td width="22%">标题</td> <td width="9%">创建人</td> <td width="14%">创建时间</td> <td width="10%">分发状态<

js获取url,截取url参数,截取url后文件名

冷暖自知 提交于 2020-01-08 07:57:13
获取当前: var url = window.location.href; 百度为例: var url=window.location.href; console.info(url); http://www.jspp.cn/testbin/apptest/app-site/explore.html; split() 方法用于把一个字符串分割成字符串数组。 先用split('?')把URL和参数分离: var url=window.location.href;var urlArr = url.split('?');  console.info(urlArr);["http://www.jspp.cn/testbin/apptest/app-site/explore.html"] var url=window.location.href;var urlArr = url.split('?');var k = urlArr[0], appU = k.split('/');console.log(k);console.log(appU);得到: VM363:1 http://www.jspp.cn/testbin/apptest/app-site/explore.html["http:", "", "www.jspp.cn", "testbin", "apptest", "app-site

js获取url,截取url参数,截取url后文件名

与世无争的帅哥 提交于 2020-01-06 02:12:37
获取当前: var url = window.location.href; 百度为例: var url=window.location.href; console.info(url); http://www.jspp.cn/testbin/apptest/app-site/explore.html; split() 方法用于把一个字符串分割成字符串数组。 先用split('?')把URL和参数分离: var url=window.location.href;var urlArr = url.split('?');  console.info(urlArr);["http://www.jspp.cn/testbin/apptest/app-site/explore.html"] var url=window.location.href;var urlArr = url.split('?');var k = urlArr[0], appU = k.split('/');console.log(k);console.log(appU);得到: VM363:1 http://www.jspp.cn/testbin/apptest/app-site/explore.html["http:", "", "www.jspp.cn", "testbin", "apptest", "app-site

Python爬虫mac版本项目

不羁的心 提交于 2020-01-04 03:14:12
爬虫概念、工具和HTTP 1.什么爬虫 爬虫就是 模拟客户端(浏览器)发送网络请求 ,获取响应,按照规则提取数据的程序 模拟客户端(浏览器)发送网络请求 : 照着浏览器发送一模一样的请求,获取和浏览器一模一样的数据 2.爬虫的数据去哪了 呈现出来:展示在网页上,或者是展示在app上 进行分析:从数据中寻找一些规律 3.需要的软件和环境 python3 黑马python基础班15天视屏:http://yun.itheima.com/course/214.html 基础语法(字符串,列表,字典,判断和循环) 函数(函数的创建和调用) 面向对象(如何创建一个类,如何使用这个类) pycharm python编辑器 chrome浏览器 分析网络请求用的 4.浏览器的请求 url 在chrome中点击检查,点到network, url = 请求的协议+网站的域名+资源的路径+参数 浏览器请求url地址 当前url对应的响应+js+css+图片 —》elements中的内容 爬虫请求url地址 当前url对应的响应 elements的内容和爬虫获取到的url地址的响应不同,爬虫中需要以当前url地址对应的响应为准提取数据 当前url地址对应的响应在哪里 从network中找到当前的url地址,点击response 在页面上右键显示网页源码 5.认识HTTP、HTTPS HTTP:超文本传输协议

Python网络爬虫与信息提取

妖精的绣舞 提交于 2020-01-03 04:25:13
1.Requests库入门 Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests >>> r = requests.get("http://www.baidu.com") >>> r.status_code 200 >>> r.encoding = 'utf-8' #修改默认编码 >>> r.text #打印网页内容 HTTP协议 超文本传输协议,Hypertext Transfer Protocol. HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。 HTTP协议采用URL作为定位网络资源的标识。 URL格式 http://host[:port][path] host:合法的Internet主机域名或IP地址 port:端口号,缺省端口为80 path:请求资源的路径 操作 方法 说明 GET 请求获取URL位置的资源 HEAD 请求获取URl位置资源的响应消息报告,即获得该资源的头部信息 POST 请求向URL位置的资源后附加新的数据 PUT 请求向URL位置存储一个资源,覆盖原URL位置的资源 PATCH 请求局部更新URL位置的资源,即改变该处资源的部分内容 DELETE 请求删除URL位置存储的资源 Requests主要方法 方法 说明 requests