面包屑思维模型实战模型错题集结构手册流程手册自我检测专题模块
-
微信小程序前端微信小程序前端易错点收集查看
-
css/less/sass样式控制在开发过程中的一些样式控制bug规避查看
-
tp5开发小程序tp5开发小程序时错误积累查看
-
PHP错题集PHP在实际开发过程中遇到的问题查看
-
MySql数据库使用MySql在实际开发中遇到的错误总结查看
-
TP5错题集积累tp5框架在实际开发过程中遇到的问题查看
-
uni-app爬坑主要用于uni-app项目中遇到的一些问题查看
-
Vue.js易错收集vue.js项目常见错误收集整理查看
-
uni-app开发微信小程序uni-app开发微信小程序的一些爬坑积累查看
-
LinuxLinux在部署、开发、运维时遇见的错误积累查看
-
安全设计常见安全设计查看
-
Redis项目中使用redis的相关错误积累查看
-
前端特效前端特效相关错题集查看
最新博文
-
淘客优惠券链接解析
淘宝联盟做淘客,不懂API、不会爬虫、不会解析并拼接优惠券链接,是万万不行的。
实际上一个成熟的淘客系统,不仅仅是通过自己的选品库、官方活动、官方高拥选品库就可以的。这个过程需要旁征博引,有时候就需要用到别人的优惠券链接。
解析优惠券链接的方法是:
将coupon/edetail?e 改为
cp/coupon/?me
注意:
实际项目中,由于浏览器同源策略。所以请求cp/coupon/?me=.....时,不要放在前端(app除外),要放在服务器端。tp5使用curl模块来请求异源API数据。
阅读更多风口下的猪2020-02-06【淘宝联盟】
-
PhantomJs采集JavaScript动态渲染的页面
爬虫
阅读更多风口下的猪2020-02-06【爬虫】
-
QueryList--rules()设置采集规则
爬虫设置采集规则
- 采集规则格式
- 规则解释
字段 类型 必填 注释 规则名 string 是 任意不重复字符串 jQuery选择器 string 是 要选择的元素选择器 要采集的属性 string 是 任意html元素属性 标签过滤列表 string 否 设置要过滤的内容 回调函数 Closure 否 用于对数据做额外处理 - 例子
规则字段解释
下面单独解释几个复杂的字段。
1.要采集的属性
值为以下3种:
- text:返回当前选中标签下面的纯文本
- html:返回当前选中标签下面的html片段
- [HTML标签属性]:如src、href、name、data-src等任意HTML标签属性名,支持通配符
*
匹配标签所有属性
2.标签过滤列表
设置此选项可用来过滤不想要的内容,多个值之间用空格隔开,有如下2条规则:
- 当标签名前面添加减号(-)时(此时标签可以为任意的jQuery选择器),表示移除该标签以及标签内容。
- 当标签名前面没有减号(-)时,当 [要采集的属性] 值为
text
时表示需要保留的HTML标签以及内容,为html
时表示要过滤掉的HTML标签但保留内容。
- 例子
如下面这段html:
获取class为
article
的元素内部内容,但是不想要那几段广告文字,那么此时就可以设置采集规则为:意思就是:采集class为
article
的元素内部的html内容,并去掉class为ad1
和class为ad2
的元素内容。现在获取到的内容就为:
实际采集中我们一般并不想采集别人的外链,想去掉内容中的链接,此时如果过滤器改为
-.ad1 -.ad2 -a
,采集到的内容就为:链接是去掉了,但实际上我们是想保存链接文字内容的,所以过滤器应该改为:
-.ad1 -.ad2 a
,这样采集到的内容就为:用法
采集结果:
阅读更多风口下的猪2020-02-06【爬虫】
-
QueryList爬取数据的工作原理
爬虫QueryList 通过获取网页整体页面内容,利用css选择器来做采集。
(静态页面爬取可以部署到虚拟主机上,但是要爬取动态页面,因为虚拟主机一般关闭了proc_open()函数。所以但凡需要动态爬取网页数据的项目,都需要部署到服务器上)
阅读更多风口下的猪2020-02-06【爬虫】
-
php爬取数据的解决方案
爬虫如果只爬取静态网页的数据,使用QueryList即可;
如果需要爬取动态网页的数据,则需要使用QueryList+phantomjs;
QueryList官方文档:http://querylist.cc/docs/guide/v4
阅读更多风口下的猪2020-02-06【爬虫】
-
workerman知识简述(6)
socketwebsocket的状态
websocket的两个属性:readyState和bufferedAmount。
根据readyState属性可以判断webSocket的连接状态,该属性的值可以是下面几种:
0 :对应常量CONNECTING (numeric value 0),
正在建立连接连接,还没有完成。The connection has not yet been established.
1 :对应常量OPEN (numeric value 1),
连接成功建立,可以进行通信。The WebSocket connection is established and communication is possible.
2 :对应常量CLOSING (numeric value 2)
连接正在进行关闭握手,即将关闭。The connection is going through the closing handshake.
3 : 对应常量CLOSED (numeric value 3)
连接已经关闭或者根本没有建立。The connection has been closed or could not be opened.
例:
var socket = new WebSocket(url);
if(socket.readyState!=1){
alert("未连接。");
return;
}
根据bufferedAmount可以知道有多少字节的数据等待发送,若websocket已经调用了close方法则该属性将一直增长。
阅读更多风口下的猪2020-02-06【socket】
-
workerman知识简述(7)
socket(1)调试时看是否创建成功,看请求信息中是否生成websocket锁(密钥),并且http是否升级到websockt
(2)每次修改workerman入口文件,便要重新通过指令开启socket
阅读更多风口下的猪2020-02-06【socket】
-
workerman知识简述(5)
socket(1)调试时看是否创建成功,看请求信息中是否生成websocket锁(密钥),并且http是否升级到websockt
(2)每次修改workerman入口文件,便要重新通过指令开启socket
阅读更多风口下的猪2020-02-06【socket】
-
workerman知识简述(4)
socket系统侧重与选择
(1)对于windows系统来说,开进程的开销很大,因此往往是单进程的线程,侧重解决的问题是“资源抢夺”与“同步”方面的问题;
(2)对于Linux系统来说,开进程的开销很小,因此往往是多进程多线程,侧重解决的问题的是进程间的通讯
[CPU为多核的情况下,多线程在性能上不如多进程]
一般实际项目,有socket,会选择Linux,windows必须一直开着cmd使socket挂起。
阅读更多风口下的猪2020-02-06【socket】
-
workerman知识简述(3)
socketworkerman知识集锦:
一.握手过程
workerman的握手过程其实是一次http协议请求,告知服务器及返回通知客户端,使两者长连接。
二.客户端实例socket的方法
客户端实例socket的方法有两个,一是socket.send(),一是socket.close()。
(1)socket.send()向通信通道发布信息,参数必须是字符串(项目中要JSON.stringify序列化数据);
(2)socket.close()关闭本地socket实例对通信通道的监听。项目中使用它,主要是有多个socket监听不同端口的情况下,需要关闭一个实例,去打开另一个实例,避免闲置对性能的影响。
三.客户端实例socket的事件
(1)onopen()成功连接socket时触发
因为连接是有网络延迟的,即websocket实例化时并不能保证能瞬间握手连接,此时如果直接调用send()或者close()肯定是会出错的。
(2)onerror()发生错误时触发
(3)onclose()在关闭时触发
在实际项目中,一定注意其要写在socket.close()之前
(4)onmessage()在接收到消息时触发
四.客户端实例的几种状态
(1)webSocket.OPENING 0 正在建立连接;
(2)webSocket.OPEN 1 已连接;
(3)webSocket.CLOSING 2 正在关闭连接;
(4)webSocket.CLOSE 3 已关闭连接。
五.客户端workerman的特点
在客户端,new socket=new Websocket();创建一个websocket应用时,就会立即向服务器发送请求
阅读更多风口下的猪2020-02-06【socket】
-
workerman知识简述(2)
socket1. socket 概述
socket 也称作套接字,用于描述 IP 地址和端口,是一个通信链的句柄,可以用来实现不同计算机之间的通信。socket 是对 TCP / IP 协议的封装,它只是提供了一组针对 TCP 或者 UDP 进行编程的接口(API)。
socket 利用客户端 / 服务器端的模式巧妙地解决了进程之间建立通信连接的问题。
2. socket 的工作原理
服务器端先初始化 socket,然后与端口绑定(bind),对端口进行监听(listen),等待客户端连接,调用accept阻塞。
这时,如果有客户端初始化一个 socket,然后请求连接服务器(connect),如果连接成功,客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把响应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
3.socket的核心
实际项目中,解决socket的核心是多进程+Epoll+非阻塞
阅读更多风口下的猪2020-02-06【socket】