想通过采集代理ip来做代理ip池,通过大量的Ip提高seo效果,习惯了正则处理,但是今天有时间测试下queryList,毕竟工欲善其事必先利其器。
// 保存全部的代理IP $allProxy = []; // 循环爬取数据 for ($i = 0; $i < 10; $i++) { // 页码 $page = $i + 1; // 请求地址 $url = 'https://proxy.ip3366.net/free/?action=china&page=' . $page; // 定义采集规则 $rules = [ 'ip' => ['td[data-title=IP]', 'text'], 'port' => ['td[data-title=PORT]', 'text'], 'type' => ['td[data-title=类型]', 'text'], ]; // 循环的dom主体 $range = 'tbody tr'; $rt = QueryList::get($url)->rules($rules)->range($range)->query()->getData(); foreach ($rt->all() as $ip) { $allProxy[$ip['ip']] = $ip; } // 休息1秒 //sleep(1); }
header() 函数向客户端发送原始的 HTTP 报头。(官方解释)通俗的讲header函数将参数中的字符串作为服务端的响应头来返回给客户端。什么是服务端的响应头?打开谷歌浏览器看看network中的请求response header信息即可。更多的参数百度response header即可浏览器...
xmlrpc协议是通过http请求xml数据进行通信。webservice中和它相同的是soap。soap调用的确很简单,但是创建wsdl太繁琐,效率低下。xmlrpc很好的解决这个问题。(1).创建xmlrpc服务端(求和函数api)function getSum($method,$ar...
(1).config.php 配置文件<?php /** * RabbitMQ_Config */ $config = [ 'host' => ...
<?php //如果支持exec函数,可以使用的方式 exec('chcp 65001'); //如果exec函数因安全问题禁用,可以使用的方式 pclose(popen('chcp 65001', 'r'));...
有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在...
概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)(1)基本事务://连接本地的 Redis 服务 $redis = new Redis(); $redis->con...