我一直在努力争取产品价格和运费 在aliexpress.com上
价格设定并固定,因此 - 容易... 但是,在网站确定后加载运费 你是哪个国家的。
我查看了源代码,它有一个隐藏的输入字段,在检查我的位置或IP后填充(可能)。
我如何使用CURL“愚弄”网站并将运费降到我的国家 - 也就是用PHP抓它?
我得到的CURL:
$html = curl_download($producturl, $browserAgent);
$dom = new DOMDocument();
$dom->validateOnParse = true;
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
libxml_clear_errors();
// get and clean product price
$price = $dom->getElementById('product-price');
$price = $price->nodeValue;
$clnprice = currency_string_remover($price);
$clnprice = explode(' ', $clnprice);
$clnprice = array_filter(array_map('trim',$clnprice),'strlen');
$clnprice = array_values($clnprice)[0];
$currency = currency_string_extractor($price);
// get and clean shipping price
// >> this is empty until page determines location! PROBLEM
$shipprice = $dom->getElementById('shipping-cost');
$shipprice = $shipprice->nodeValue;
echo '<pre>SPRICE';
print_r($shipprice);
echo '</pre>';
$shipprice = explode('-', $shipprice);
$shipprice = $shipprice[0];
$shipprice = currency_string_remover($shipprice);
echo '<div id="sitename">aliexpress</div>';
echo '<div id="price">'.$clnprice.'</div>';
echo '<div id="shipprice">'.$shipprice.'</div>';
echo '<div id="currency">'.$currency.'</div>';
有没有人有任何想法?指针?帮助链接?
答案 0 :(得分:0)
我已经检查了网站。它适用于多种语言和国家。对于产品页面上的俄罗斯(我的情况),主要价格包括运费。所以这个dom html项目仍为空:<span id="shipping-cost"></span>
顺便说一句,它不是一种形式(在我的情况下)。
如果您怀疑它的ajax(javascript)已填充,则最好检查shipping-cost
关键字的所有js文件。我已经使用 Chrome开发工具完成了它,在我的情况下,我发现在任何js文件(包括源html文件)中都没有出现它。所以很可能它不是javascript(ajax)更新,而是此字段最初是在服务器上生成的,而可能是空的。
您的浏览器会从某个国家/地区监视该站点,并且您运行php代码的服务器(curl scraper)会从完全不同的国家/地区(IP)执行此操作。因此,Aliexpress将以不同的页面内容进行响应。因此,我建议您使用免费代理服务hola.org通过代理进行调试来更改/轮换国家/地区(IP)。因此,您可以使用不同的基于国家/地区的IP检查此站点以查看此字段。
您可能需要查看其他字段( product-info-shipping )以查看送货条件。 http://joxi.ru/xAe8Wy1hGDgq2y
如果您真的想要请求在某个国家(IP)填充shipping-cost
的网页,那么您需要使用代理服务来代理您的卷曲请求。