[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите пожалуйста спарсить значение выводимое че
maxy666
Доброе время суток. Пишу не сложный парсер товаров с aliexpress.com, но не получается спарсить стоимость доставки на сайте. Стоимость доставки выводиться на сайте, как я понял через javascicript.
При обычной загрузке страницы:
$content = file_get_contents ($from);
echo $content;
Поле доставка отображается только в браузере, так же при попытке “проинспектировать элемент”:
http://s017.radikal.ru/i425/1311/8a/adb76b586f1e.jpg
а исходном коде html такого информации нету (тег <span id="shipping-cost"></span> отображается пустым):
http://i016.radikal.ru/1311/d0/36d3d37517c9.jpg
Пробовал загрузить страницу с помощью curl, но такая же ситуация.
Пожалуйста помогите. Или скажите как парсить такие значения(выводимые, вроде как я понял с помощью javascript).
Игорь_Vasinsky
Цитата
Доброе время суток. Пишу не сложный парсер товаров с aliexpress.com, но не получается спарсить стоимость доставки на сайте. Стоимость доставки выводиться на сайте, как я понял через javascicript. При обычной загрузке страницы:$content = file_get_contents ($from);echo $content;Поле доставка отображается только в браузере, так же при попытке “проинспектировать элемент”: а исходном коде html такого информации нету (тег &lt;span id="shipping-cost"&gt;&lt;/span&gt; отображается пустым):Пробовал загрузить страницу с помощью curl, но такая же ситуация.Пожалуйста помогите. Или скажите как парсить такие значения(выводимые, вроде как я понял с помощью javascript). Доброе время суток. Пишу не сложный парсер товаров с aliexpress.com, но не получается спарсить стоимость доставки на сайте. Стоимость доставки выводиться на сайте, как я понял через javascicript. При обычной загрузке страницы:$content = file_get_contents ($from);echo $content;Поле доставка отображается только в браузере, так же при попытке “проинспектировать элемент”: а исходном коде html такого информации нету (тег &lt;span id="shipping-cost"&gt;&lt;/span&gt; отображается пустым):Пробовал загрузить страницу с помощью curl, но такая же ситуация.Пожалуйста помогите. Или скажите как парсить такие значения(выводимые, вроде как я понял с помощью javascript). Доброе время суток. Пишу не сложный парсер товаров с aliexpress.com, но не получается спарсить стоимость доставки на сайте. Стоимость доставки выводиться на сайте, как я понял через javascicript.
При обычной загрузке страницы:
$content = file_get_contents ($from);echo $content;
Поле доставка отображается только в браузере, так же при попытке “проинспектировать элемент”:

а исходном коде html такого информации нету (тег &lt;span id="shipping-cost"&gt;&lt;/span&gt; отображается пустым):

Пробовал загрузить страницу с помощью curl, но такая же ситуация.
Пожалуйста помогите. Или скажите как парсить такие значения(выводимые, вроде как я понял с помощью javascript).


это чё было? нервы?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
maxy666
извините пробовал расширенный редактор, все подправил.
Пожалуйста посмотрите мою проблему.
kaww
для получения стоимости и т.д. делается запрос вида http://freight.aliexpress.com/ajaxFreightC..._=1383794350128 . Очень удачно, что это не авторизованный jsonp wink.gif Просто подставляешь интересующий productid и получаешь данные в формате json (обернутых в вызов функции (jsonp ведь)))
Игорь_Vasinsky
вот тебе и парсер)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
GET
maxy666

Сдается мне, что для того чтоб отобразить элемент пришедший айксом нужно при запросе исходного кода отправлять также активацию этого элемента, то что вызывает этот аякс запрос. А просто исходный код страницы это тоже самое что еще раз открыть страницу только в виде HTML:

$content = htmlspecialchars(file_get_contents ($from));

Только предполагаю, как сделать:

1. Подделать AJAX запрос для елемента $old
2. Отправить его на сервер
3. Поймать ответ $new
4. Сделать str_replace($old,$new,$content);


Пока писал kaww уже все написал. Но все же вдруг мысль будет интересной. smile.gif

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
maxy666
Спасибо, даже не знал что так можно. Только у меня пока не получается(

Пожалуйста посмотрите например по товару:
http://www.aliexpress.com/item/leopard-hea.../902836144.html

id будет 902836144 ?
надо подставить вместо
http://freight.aliexpress.com/ajaxFreightC...&f=d&productid=695720101&userType=cnfm&country=RU&count=4&currencyCode=USD&_=1383794350128


Подставляю id товара
http://freight.aliexpress.com/ajaxFreightC...&f=d&productid=902836144&userType=cnfm&country=RU&count=4&currencyCode=USD&_=1383794350128

В результате получаю:
"
jQuery18307296085192356259_1383794331837({"freight":[{"commitDay":27,"company":"E MS","companyDisplayName":"EMS","currency":"USD","di scount":40,"discountType":"about","domesticFreight":"","errorCode& quot;:1,"isDefault":true,"localCurrency":"USD","localPrice":& quot;83.84","localPriceFormatStr":"US $83.84","localSaveMoney":"55.90","localSaveMoneyFormatStr":"US $55.90","localTotalFreight":"139.74","localTotalFreightFormatStr":" US $139.74","price":"83.84","processingTime":5,"saveMoney" ;:"55.90","status":"","time":"10-20","totalFreight":"139.74"}]})"

но почему то цена доставки СhinaPost выводиться не та(или не по тому товару), возможно еще что то надо менять. в строке?
kaww
maxy666, ну так ведь там есть еще count - количество товара, country - код страны и userType -вот это хз что такое, придется тебе самому разобраться )
З.Ы. если не передавать имя функции (callback), то в ответе будет json обернутый в скобки, который можно разобрать, например, так
var_dump(json_decode(rtrim(ltrim($responseString,'('),')')));
maxy666
точно спасибо, что то на не досмотрел. Буду пробовать.
Спасибо вам всем за советы, особенно: kaww и ABC за идеи, вы меня очень выручили.
А то честно говоря не знал с чего подступиться)).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.