Очистить стоимость доставки в зависимости от страны — динамически построить

я пытался получить цену продукта и стоимость доставки
на 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

Решение

Я проверил сайт. Работает для нескольких языков и стран. С россией (мой случай) на странице товара основная цена включает стоимость доставки. Таким образом, этот элемент HTML остается пустым: <span id="shipping-cost"></span>
Кстати, это не в форме (в моем случае).

Если вы подозреваете, что он заполнен ajax (javascript), вам лучше проверить все файлы js на наличие shipping-cost ключевое слово Я сделал это с Chrome dev-tools и в моем случае я не обнаружил его появления ни в одном js-файле (включая исходный html-файл). Так что скорее всего это не Javascript (AJAX) обновлен а скорее это поле изначально на сервере генерируется и может быть подан пустым.

Ваш браузер просматривает сайт из определенной страны, а сервер, на котором вы запускаете php-код (curl scraper), делает это из совершенно другой страны (IP). Таким образом, Aliexpress ответит другим содержанием страницы. Поэтому я рекомендую вам бесплатный прокси-сервис hola.org для изменения / поворота страны (IP) через прокси для отладки. Таким образом, вы можете проверить этот сайт с IP-адресами разных стран, чтобы увидеть это поле.

Возможно, вам придется проверить другое поле (продукт-инфо-доставка) чтобы увидеть условия доставки. http://joxi.ru/xAe8Wy1hGDgq2y

Если вы действительно хотите запросить веб-страницу с shipping-cost Заполненный как в определенной стране (IP), то вам нужно использовать прокси-сервис для прокси ваших запросов curl.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]