之前在博客中我推荐大家使用queryList来解析dom,但是在我长期的爬虫工作中来看它的bug很多。于是推荐这个symfony官方组件。
安装包:
composer require symfony/dom-crawler
安装css选择器
composer require symfony/css-selector
创建爬虫解析例子:
$response = file_get_contents('https://xxx.net/xxx/2485.html');
$crawler = new Crawler($response);
$href = $crawler->filter('.container .sub-left .sub-left-content .title p a')->eq(1)->attr('href');
echo $href; <?php /** * daemonize让当前脚本为守护进程执行 * @param string $callback 匿名函数 */ function daemonize($callback) {...
(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。(2)manager进程开始统一管理进程创建回收管理。(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程因此启动s...
在编写多进程的实例中我在每个进程中使用如下代码://调用等待信号的处理器 while (true) { pcntl_signal_dispatch(); }开启5个进程,cpu直接100%修正之后的代码://调用等待信号的处理器 while&...
今天帮朋友查询wordpress执行超级慢的原因,特此记录开启fpm的慢日志,记录执行超过30秒的脚本request_slowlog_timeout = 30 slowlog = var/log/slow.log查看日志[23-May-2019 17...
<?php //php7+ define('CONFIG', [ 'MYSQL' => '127.0.0.1',  ...
有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在...