我无法访问具有父类名称的范围

时间:2018-04-08 20:12:05

标签: php xpath web-scraping

我尝试这段代码但是它返回了NULL对象!

<?php
ini_set('max_execution_time', 300);
include_once ('Scraper.php');
$scraper = new Scraper();
$pageUrl = 'https://www.zara.com/tr/en/wrap-blouse-with-bow-p04437059.html?v1=6022035&v2=943001';
$pageHtmlContent = $scraper->curl($pageUrl);
$dom=new DOMDocument();
$dom->load($pageHtmlContent);
$xpath=new DOMXPath($dom);
$prise= $xpath->evaluate('(//div[@class=\'._product-price\'])');
var_dump($prise);
?>

我使用selectorGadget来制作XPATH地址。

1 个答案:

答案 0 :(得分:0)

抱歉,无法添加评论,不能声誉:(。

你的xpath是incorect,我在给定的url中找不到任何东西。请提供您想要的内容。

编辑以发表评论

要找到确切的div(正如我尝试的那样,在给定的url中只有1个div具有某些类),请使用此xpath (//*[contains(@class,'_product-price')])。如果您需要该div中的价格,请使用此xpath (//*[contains(@class,'_product-price')]/span)。如果有超过1个xpath,请使用(//*[contains(@class,'_product-price')]/span)[i],其中i在DOM元素的循环内。

e.g。

dom_elements = [get_dom_elements]
store_value = []
i = 1
while i < len(dom_elements):
    xpath = '(//*[contains(@class,'_product-price')]/span)[i]'
    store_value.append(some_function_for_getting_value_of_dom(xpath))
    i += 1