Ошибка 503 после ссылки file_get_html на Amazon OfferListing

в настоящее время я занимаюсь интеграцией между Amazon и моим сайтом через API. Но теперь я столкнулся с проблемой: API не возвращает информацию о стоимости доставки, и есть много товаров с высокой ценой на стоимость доставки. Поэтому я решил получить данные прямо с сайта Amazon через простой html dom. Сначала я примеряю любой вид продукта, чтобы протестировать его и получить цену, и я это сделал. Но когда я пытаюсь сделать simple_html_dom ссылкой, подобной следующей http://www.amazon.com/gp/offer-listing/B00E45043A/ref=dp_olp_new?ie=UTF8&condition=new (эти ссылки показывают мне таблицу с информацией о доставке) У меня такая ошибка: 2014-03-04T05:48:01+00:00 ERR (3): Предупреждение: file_get_contents(http://www.amazon.com/gp/offer-listing/B00E45043A/ref=dp_olp_new?ie=UTF8&condition=new ): не удалось открыть поток: HTTP-запрос не выполнен! HTTP/1.1 503 Служба недоступна в /var/www/mysite/lib/phpseclib/simpleDom/simple_html_dom.php в строке 75

Здесь запрос не работает:

$html = file_get_html($url);

Anyhelp был бы признателен.


person Beto Castillo    schedule 04.03.2014    source источник
comment
В Amazon сведения о сайте поступают из JSON. Это может помешать вам получить данные. Проверьте, как приходят данные. Это может вам помочь. Я также прошел через ту же проблему.   -  person Gunaseelan    schedule 04.03.2014
comment
Спасибо!, но я не могу найти запрос XHR об информации о доставке. Несколько минут назад я попытался использовать CURL для того же URL-адреса и получил ошибку 500. Возможно, Amazon блокирует доступ к деталям предложения. Знаете ли вы другой способ получить правильную информацию о доставке? Спасибо   -  person Beto Castillo    schedule 04.03.2014
comment
Я думаю, что cURL не поможет вам в этом.   -  person Gunaseelan    schedule 04.03.2014
comment
Да, я тоже это заметил. :P, вопрос в том, почему я могу получить информацию через simple_dom_html в представлении продукта, а не в предложениях продукта?   -  person Beto Castillo    schedule 04.03.2014
comment
Я обнаружил, что необходимые данные загружаются только после полной загрузки страницы.   -  person Gunaseelan    schedule 04.03.2014
comment
Это потому, что file_get_contents не отправляет правильные заголовки.   -  person pguardiario    schedule 04.03.2014
comment
@BetoCastillo Нам нужно найти детали, которые загружаются после полной загрузки страницы. Чтобы получить его, мы должны получить json, который имеет массив значений. В этом массиве нам нужно проанализировать его и получить то, что мы хотим.   -  person Gunaseelan    schedule 04.03.2014


Ответы (1)


Вы, вероятно, получаете эту ошибку, потому что размер html превышает константу MAX_FILE_SIZE simple_html_dom.php, которая по умолчанию равна 600000. Отредактируйте simple_html_dom.php и измените MAX_FILE_SIZE на что-то большее. Вы можете найти его в строке 66, если это стандартный синтаксический анализатор: define('MAX_FILE_SIZE', 600000); Для меня это решило проблему.

person Calin Rusu    schedule 01.03.2015