Symfony DomCrawler 没有输出任何东西
Symfony DomCrawler is not outputing anything
这是我正在使用的代码
$client = new Client();
$requests = [
$client->createRequest('GET', 'http://httpbin.org'),
$client->createRequest('GET', 'http://httpbin.org')
];
$options = [
'complete' => [
[
'fn' => function (CompleteEvent $event) {
$crawler = new Crawler('GET', $event->getRequest()->getUrl());
echo '<p>'.$crawler->filter('title')->text().'</p>';
},
'priority' => 0,
'once' => false
]
]
];
$pool = new Pool($client, $requests, $options);
$pool->wait();
它没有给出任何错误,但也没有输出任何内容。我已尝试替换 URL,但仍然没有输出。
代码示例的主要问题是 Symfony\Component\DomCrawler\Crawler
对象的实例化。正如目前所写,"GET" 是 $crawler
的唯一内容;结果调用 $crawler->filter()
returns 一个包含空 DOMNodeList 的 Symfony\Component\DomCrawler\Crawler
实例。这就是您的输出为空的原因。
替换:
$crawler = new Crawler('GET', $event->getRequest()->getUrl());
与:
$crawler = new Crawler(null, $event->getRequest()->getUrl());
$crawler->addContent(
$event->getResponse()->getBody(),
$event->getResponse()->getHeader('Content-Type')
);
这是我正在使用的代码
$client = new Client();
$requests = [
$client->createRequest('GET', 'http://httpbin.org'),
$client->createRequest('GET', 'http://httpbin.org')
];
$options = [
'complete' => [
[
'fn' => function (CompleteEvent $event) {
$crawler = new Crawler('GET', $event->getRequest()->getUrl());
echo '<p>'.$crawler->filter('title')->text().'</p>';
},
'priority' => 0,
'once' => false
]
]
];
$pool = new Pool($client, $requests, $options);
$pool->wait();
它没有给出任何错误,但也没有输出任何内容。我已尝试替换 URL,但仍然没有输出。
代码示例的主要问题是 Symfony\Component\DomCrawler\Crawler
对象的实例化。正如目前所写,"GET" 是 $crawler
的唯一内容;结果调用 $crawler->filter()
returns 一个包含空 DOMNodeList 的 Symfony\Component\DomCrawler\Crawler
实例。这就是您的输出为空的原因。
替换:
$crawler = new Crawler('GET', $event->getRequest()->getUrl());
与:
$crawler = new Crawler(null, $event->getRequest()->getUrl());
$crawler->addContent(
$event->getResponse()->getBody(),
$event->getResponse()->getHeader('Content-Type')
);