使用 Simple HTML DOM 从网站抓取数据视图值
Scrape data-view value from website using Simple HTML DOM
我可以配置/更改 PHP,但不够熟练,无法从头开始编写 - 想知道是否有人可以帮助我吗?
基本上我想从网站上抓取少量数据,格式为:
<div class="PDPVariantOption" data-value="XYZ" data-variant="ClothingSize">
我只想提取 XYZ 位
$html->load($result["body"]);
$rows = $html->find("div.PDPVariantOption");
foreach ($rows as $row)
{
echo "\t" . $row . "\n";
}
这是我正在使用的代码(与 http://barebonescms.com/documentation/ultimate_web_scraper_toolkit/ 一起使用)但这提取了 div 标签内的所有内容 - 我已经尝试了使用 getAttribute 的各种选项和类似的 get "data-value" 值(恐怕纯属我的猜测!)但运气不好 - 谁能帮忙?
非常感谢
乔伊
好的,这是我的完整代码:
$dom = new DOMDocument();
$html = '<div class="PDPVariantOption" data-value="XYZ" data-variant="ClothingSize">
<div class="PDPVariantOption" data-value="BHB" data-variant="ClothingSize">
<div class="differentName">
<div class="PDPVariantOption" data-value="567" data-variant="ClothingSize">
<div class="PDPVariantOption" data-value="123" data-variant="ClothingSize">
<div class="PDPVariantOption" data-value="rty" data-variant="ClothingSize">';
$dom->loadHTML($html);
$finder = new DomXPath($dom);
$result = $finder->query("//*[contains(@class, 'PDPVariantOption')]");
for ($i; $i < $result->length; $i++) {
$row = $result->item($i)->getAttribute('data-value');
echo $row . "\n";
}
我可以配置/更改 PHP,但不够熟练,无法从头开始编写 - 想知道是否有人可以帮助我吗?
基本上我想从网站上抓取少量数据,格式为:
<div class="PDPVariantOption" data-value="XYZ" data-variant="ClothingSize">
我只想提取 XYZ 位
$html->load($result["body"]);
$rows = $html->find("div.PDPVariantOption");
foreach ($rows as $row)
{
echo "\t" . $row . "\n";
}
这是我正在使用的代码(与 http://barebonescms.com/documentation/ultimate_web_scraper_toolkit/ 一起使用)但这提取了 div 标签内的所有内容 - 我已经尝试了使用 getAttribute 的各种选项和类似的 get "data-value" 值(恐怕纯属我的猜测!)但运气不好 - 谁能帮忙?
非常感谢
乔伊
好的,这是我的完整代码:
$dom = new DOMDocument();
$html = '<div class="PDPVariantOption" data-value="XYZ" data-variant="ClothingSize">
<div class="PDPVariantOption" data-value="BHB" data-variant="ClothingSize">
<div class="differentName">
<div class="PDPVariantOption" data-value="567" data-variant="ClothingSize">
<div class="PDPVariantOption" data-value="123" data-variant="ClothingSize">
<div class="PDPVariantOption" data-value="rty" data-variant="ClothingSize">';
$dom->loadHTML($html);
$finder = new DomXPath($dom);
$result = $finder->query("//*[contains(@class, 'PDPVariantOption')]");
for ($i; $i < $result->length; $i++) {
$row = $result->item($i)->getAttribute('data-value');
echo $row . "\n";
}