尝试通过 xpath 和 css 元素获得相同的结果
Trying to get same result by xpath and css element
我正在尝试使用 dom 元素和 xpath 从站点获得相同的结果。所以我可以让这个爬虫为更多网站动态,这样我只需要填写 url 和什么类型(xpath,dom 元素)。
$url = 'https://#/';
$xpath = "/html[1]/body[1]/div[3]/header[1]/div[1]/div[1]/div[2]/div[1]/ul[1]/li[2]/ul[1]/li[1]/span[1]";
$client = new Client();
$guzzleClient = new GuzzleClient(array(
'timeout' => 60,
));
$client->setClient($guzzleClient);
$crawler = $client->request('GET', $url);
$crawler->filter('.rate')->filter('.gold')->each(function ($node) {
print $node->text()."\n";
});
$result = $crawler->filterXPath($xpath);
var_dump($result);
结果应该是,黄金价格像这样的代码输出:$crawler->filter('.rate')->filter('.gold')->each(function ($node) {
打印 $node->text()."\n";
});
如果有任何不清楚的地方请告诉我!
欢迎来到 SO。
如果你想获取黄金汇率,那么你可以使用下面的选择器。
xpath
//ul[@class='rates-widget list-inline']//span[@class='rate gold']
CSS
ul.rates-widget.list-inline span.rate.gold
我正在尝试使用 dom 元素和 xpath 从站点获得相同的结果。所以我可以让这个爬虫为更多网站动态,这样我只需要填写 url 和什么类型(xpath,dom 元素)。
$url = 'https://#/';
$xpath = "/html[1]/body[1]/div[3]/header[1]/div[1]/div[1]/div[2]/div[1]/ul[1]/li[2]/ul[1]/li[1]/span[1]";
$client = new Client();
$guzzleClient = new GuzzleClient(array(
'timeout' => 60,
));
$client->setClient($guzzleClient);
$crawler = $client->request('GET', $url);
$crawler->filter('.rate')->filter('.gold')->each(function ($node) {
print $node->text()."\n";
});
$result = $crawler->filterXPath($xpath);
var_dump($result);
结果应该是,黄金价格像这样的代码输出:$crawler->filter('.rate')->filter('.gold')->each(function ($node) { 打印 $node->text()."\n"; });
如果有任何不清楚的地方请告诉我!
欢迎来到 SO。
如果你想获取黄金汇率,那么你可以使用下面的选择器。
xpath
//ul[@class='rates-widget list-inline']//span[@class='rate gold']
CSS
ul.rates-widget.list-inline span.rate.gold