Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Парсинг ems с taobao.com
 
 автор: hugi   (27.07.2010 в 18:35)   письмо автору
 
 

Необходимо вытащить поле ems(стоимость доставки почтой).

Примеры страниц.
http://item.taobao.com/item.htm?id=2707659755
http://item.taobao.com/item.htm?id=5247635387
http://item.taobao.com/item.htm?id=5248514025

Вот собственно как это выглядит в html коде.
<em id="J_PostageList">&#24555;&#36882;: 12.0&#20803;&#12288;EMS: 50.0&#20803;</em>

Проблема в том что данная информация вставляется javascriptoм после прогрузки страницы, т.е. когда я пытаюсь вытащить html код с помощью curl или file_get_contents, то там нет нужной строки.

У кого какие есть идеи.
Либо как-то попытаться вывести формулу. EMS рассчитывается за счет веса, но для товаров нет веса на страничке.

  Ответить  
 
 автор: bishake   (27.07.2010 в 23:24)   письмо автору
 
   для: hugi   (27.07.2010 в 18:35)
 

Проанализируйте JS и воспроизведите на PHP

  Ответить  
 
 автор: hugi   (28.07.2010 в 08:18)   письмо автору
232 Кб
 
   для: bishake   (27.07.2010 в 23:24)
 

Бог в помощь, я уже этот код анализировал.


Это проблема сложная, для тех кому интересно подумать, а не отвечать на вопросы нубов.

  Ответить  
 
 автор: Саня   (28.07.2010 в 11:22)   письмо автору
 
   для: hugi   (27.07.2010 в 18:35)
 

Сложная? Нужно смотреть исходник страницы, а не подключаемые скрипты.
А вообще такие большие листинги кода принято оформлять в виде вложения к посту. Пока никто не ответил на ваше сообщение — исправьте его.

  Ответить  
 
 автор: hugi   (28.07.2010 в 23:04)   письмо автору
 
   для: Саня   (28.07.2010 в 11:22)
 

Исправил.

Во-первых, выше написано что в html коде не содержится нужной информации, так что смысле смотреть нет.
Данный элемент вставляется с помощью js скрипта, так что мысль смотреть в подключаемые скрипты правильная. Другой вопрос что от этого пользы тоже никакой.


Да проблема сложная, я ее решить не могу, это не просто curlом скачать и regexpoм вытащить.

  Ответить  
 
 автор: Саня   (29.07.2010 в 17:21)   письмо автору
 
   для: hugi   (28.07.2010 в 23:04)
 

Я же не просто так написал "Нужно смотреть исходник страницы, а не подключаемые скрипты."
Сами думать не хотим и других слушать тоже. Ок, тогда разжую.

Заходим по первой попавшейся ссылке: http://item.taobao.com/item.htm?id=2707659755
Видим "EMS: 999.0".
Открываем исходник страницы, Ctrl+F -> "999.0".
Натыкаемся на массив
"valPostFee": {
  items: [
    ['28548538', '7', '710000,810000,820000,990000', '999.0', '0.0'],
    ['28548537', '7', '210000,220000,230000,460000,520000,530000,540000,620000,630000,640000,650000', '15.0', '4.0'],
    ['28548536', '4', '420000', '6.0', '3.0'],
    ['28548535', '4', '710000,810000,820000', '35.0', '30.0'],
    ['28548534', '4', '150000,460000,540000,640000,650000', '12.0', '6.0'],
    ['28548533', '4', '140000,210000,220000,230000,450000,520000,530000,610000,620000,630000', '10.0', '4.0'],
    ['28548532', '7', '1', '12.0', '3.0'],
    ['28548531', '4', '1', '8.0', '3.0']
  ],
  currDest: '1',
  memo: ''
},
Чтобы разобраться в этой структуре уже может потребоваться копание в подключаемом скрипте, который вы прикрепили. Во всяком случае 5-минутное копание дало мне поверхностное понятие о структуре:

valPostFee.items — массив, хранящий все цены на доставку.
['28548538', '7', '710000,810000,820000,990000', '999.0', '0.0'] -> второй элемент обозначает службу доставки (в данном случае 7 — EMS), третий элемент — коды направлений, на которых действует данная конкретная доставка (710000 — Тайвань, 990000 — "заграница"), четвёртый — искомая цена доставки в юанях.

Внимательнее нужно быть.

  Ответить  
 
 автор: hugi   (30.07.2010 в 10:53)   письмо автору
 
   для: Саня   (29.07.2010 в 17:21)
 

Большое спасибо, со вниманием у меня всегда проблемы были.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования