【问题标题】:Scrape data-view value from website using Simple HTML DOM使用简单的 HTML DOM 从网站中抓取数据视图值
【发布时间】:2016-04-12 09:24:15
【问题描述】:

我可以配置/更改 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 和类似的各种选项来获取“数据值”值(恐怕我纯粹是猜测!)但没有运气 - 有人可以帮忙吗?

在此先感谢

乔伊

【问题讨论】:

    标签: php web-scraping simple-html-dom


    【解决方案1】:

    好的,这是我的完整代码:

    $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";
    }
    

    【讨论】:

    • 感谢您的回复——我真的很抱歉,但我无法让它工作——我的代码现在是:$html->load($result["body"]); $rows = $html->find('div[data-value]')->{'data-value'}; foreach ($rows as $row) { echo "\t" 。 $行。 "\n";但它不会输出任何东西?提前致谢
    • 好的检查我编辑的答案。这是我的演示脚本,它使用更简单的 getAttribute 对我有用。
    • 非常感谢 Ben,我真的很感激 - 我已经开始工作了 - 很抱歉这么痛苦,但无论如何有没有将它限制为类 PDPVariantOption 的 div - 就像那里是页面上的其他 div,这将返回空行(可能是因为它们是没有数据值的 div)
    • 啊,好吧,我的错。我现在已经修复了我的答案,只获取具有设置类名的 div,我完全忘记了这一点。
    • 非常感谢 Ben - 昨天花了一整天的时间来解决这个问题,非常感谢您的帮助 :) 祝你有美好的一天!
    猜你喜欢
    • 2018-05-23
    • 2016-02-22
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2018-01-05
    • 2018-05-11
    相关资源
    最近更新 更多