Goutte 从每个节点提取数据
Goutte extract data from every node
嗨,我想从每个节点提取数据,但我不知道该怎么做,如果有人能给我一些指导,我将不胜感激
<table>
<tr>
<td>item1</td>
<td>item2</td>
</tr>
<tr>
<td>item3</td>
<td>item4</td>
</tr>
</table>
这是我的 php 代码:
$client = new Client();
$crawler = $client->request('GET', 'https://www.socom');
$crawler->filter('.tr')->each(function ($node) {
print $node->filter('.td')->text()."\n";
});
你的方法是对的,只是你指的是你的 html 标签,其中有 class tr
,正如我在你的 [=37] 中看到的=] 你有 none,所以,这就是你没有 "success".
的原因
检查这个,您可以访问每个 tr
元素并以这种方式获取文本:
$crawler->filter('tr')->each(function($node) {
print_r($node->text());
});
请注意输出是 node
,因此您不能使用 echo
,而我仅使用 tr
来引用该元素。
你也可以这样做,这似乎更符合你想要得到的:
$crawler->filter('tr')->each(function($node) {
$node->filter('td')->each(function($nested_node) {
echo $nested_node->text() . "\n";
});
});
这是获取所有 tr
,每个 tr
获取其 td
,然后获取那些 td
元素,获取其中的文本。
就是这样,这是代码。
<?php
require __DIR__ . '/vendor/autoload.php';
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'your_url');
$crawler->filter('tr')->each(function($node) {
print_r($node->text());
});
$crawler->filter('tr')->each(function($node) {
$node->filter('td')->each(function($nested_node) {
echo $nested_node->text() . "\n";
});
});
希望对您有所帮助。
嗨,我想从每个节点提取数据,但我不知道该怎么做,如果有人能给我一些指导,我将不胜感激
<table>
<tr>
<td>item1</td>
<td>item2</td>
</tr>
<tr>
<td>item3</td>
<td>item4</td>
</tr>
</table>
这是我的 php 代码:
$client = new Client();
$crawler = $client->request('GET', 'https://www.socom');
$crawler->filter('.tr')->each(function ($node) {
print $node->filter('.td')->text()."\n";
});
你的方法是对的,只是你指的是你的 html 标签,其中有 class tr
,正如我在你的 [=37] 中看到的=] 你有 none,所以,这就是你没有 "success".
检查这个,您可以访问每个 tr
元素并以这种方式获取文本:
$crawler->filter('tr')->each(function($node) {
print_r($node->text());
});
请注意输出是 node
,因此您不能使用 echo
,而我仅使用 tr
来引用该元素。
你也可以这样做,这似乎更符合你想要得到的:
$crawler->filter('tr')->each(function($node) {
$node->filter('td')->each(function($nested_node) {
echo $nested_node->text() . "\n";
});
});
这是获取所有 tr
,每个 tr
获取其 td
,然后获取那些 td
元素,获取其中的文本。
就是这样,这是代码。
<?php
require __DIR__ . '/vendor/autoload.php';
use Goutte\Client;
$client = new Client();
$crawler = $client->request('GET', 'your_url');
$crawler->filter('tr')->each(function($node) {
print_r($node->text());
});
$crawler->filter('tr')->each(function($node) {
$node->filter('td')->each(function($nested_node) {
echo $nested_node->text() . "\n";
});
});
希望对您有所帮助。