QueryList 采集一部分之后,会报错phpQuery::newDocumentFile($file) first

新手上路,请多包涵

好像是文档没有载入。

请教下大家遇到这样的问题是怎样处理的啊??

[Exception]
Document with ID '8291f24461d0e759b6440677585a7ce7' isn't loaded. Use phpQuery::newDocument($html) or phpQuery::newDocumentFile($file) first.

重新执行一次脚本又好了

阅读 5.3k
3 个回答

此类错误一般是因为脚本中涉及大量的QueryList对象调用,而又没有及时释放资源的内存占用,导致内存溢出引起的,解决方法就是尽量重用同一个QueryList对象并及时释放资源的内存占用:

  • 错误示范
foreach ($urls as $url) {
    QueryList::get($url)->rule([
      //....
    ])->query()->getData();
}
  • 正确做法
$ql = QueryList::rule([
      //....
    ]);
foreach ($urls as $url) {
    $ql->get($url)->query()->getData();
    // 释放资源,销毁内存占用
    $ql->destruct();
}
新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题