QueryList destruct()
- 用法
释放资源,销毁内存占用。在涉及到循环采集大量网页的场景下,这个方法是很有用的。
注意:此方法并不是销毁QueryList对象,只是销毁phpQuery Document占用的内存,所以调用此方法后,原先设置过HTML的QueryList对象都会丢失设置的HTML,需要重新调用html
或者get
方法设置HTML.
用法
- 基础用法
$html = file_get_contents('https://querylist.cc/');
$ql = QueryList::html($html);
$ql->destruct();
// 报错
$ql->find('a');
// 需要重新设置html
$ql->html($html);
// 成功
$ql->find('a');
- 实际使用场景
// 待采集的链接集合
$urls = [
'https://querylist.cc/1.html',
'https://querylist.cc/2.html',
'https://querylist.cc/3.html',
//...
];
// 设置采集规则
$ql = QueryList::rule([
'title' => ['h1','text'],
'link' => ['a','href']
]);
foreach($urls as $url){
// 每条链接都会应用上面设置好的采集规则
$data = $ql->get($url)->query()->getData();
// 释放Document内存占用
$ql->destruct();
// ...
}