Парсинг страницы

M9
На сайте с 15.05.2014
Offline
79
833

Знатоки, помогите с парсером есть страница и есть тег:

<div class="descr_review_images_container"></div>
который внутри подгружается теги (элементы) js - ом так и нужно парсить этот тег с дочерними элементами но simple_html_dom не видеть дочерний элементы тега:
<div class="descr_review_images_container"></div>
как тут парсить а?
LovelAss
На сайте с 05.06.2009
Offline
96
#1

Две функции отвечают за формирование этого блока _process_review_imgs и _process_review_imgs_tmall - разберите их функционал и сделайте аналоги на php или на чём там у вас парсер.

M9
На сайте с 15.05.2014
Offline
79
#2
LovelAss:
Две функции отвечают за формирование этого блока _process_review_imgs и _process_review_imgs_tmall - разберите их функционал и сделайте аналоги на php или на чём там у вас парсер.

Разобрался не очень нашел только:

if (is_tmall) {

$.getScript("http://rate.tmall.com/list_detail_rate.htm?callback=_process_review_imgs_tmall&itemId=523396457734&sellerId=" + seller_id + "&picture=1&currentPage=1")
} else {
$.getScript("https://rate.taobao.com/feedRateList.htm?callback=_process_review_imgs&auctionNumId=523396457734&currentPageNum=1&rateType=3&orderType=sort_weight&showContent=0");
}

и то не понятно, ну ходил по ссылкам но толку мало что то(

W
На сайте с 09.04.2013
Offline
46
#3

Вот практически универсальный парсер

$ch = curl_init('http://tao.ru/catalog/523396457734.html');

curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);
preg_match('#item.js\?iid=(?P<iid>\d+)#', $page, $result);
$url = sprintf('http://tao.ru/item.js?iid=%d', $result['iid']);
curl_setopt($ch, CURLOPT_URL, $url);
$json = curl_exec($ch);
$info = json_decode($json);
$itemId = $info->data->item->itemNumId;
$sellerId = $info->data->seller->userNumId;
$param = array(
'callback' => '_process_review_imgs_tmall',
'itemId' => $itemId,
'sellerId' => $sellerId,
'picture' => 1,
'currentPage' => 1
);
$url = 'https://rate.tmall.com/list_detail_rate.htm?' . http_build_query($param);
curl_setopt($ch, CURLOPT_URL, $url);
$json = curl_exec($ch);
curl_close($ch);
$json = substr($json, 32, -1);
$json = json_decode(utf8_encode($json));
foreach ($json->rateDetail->rateList as $rate) {
foreach ($rate->pics as $img) {
echo str_replace('//img.', 'http://img.', $img) . PHP_EOL;
}
}

На http://tao.ru/catalog/523396457734.html выдает


http://img.alicdn.com/bao/uploaded/i2/164410144544253683/TB2MxIWhFXXXXXxXXXXXXXXXXXX_!!0-rate.jpg

На http://tao.ru/catalog/tehnika/bytovaya/kuhonnaya/kofemashiny/6lQu0FG.html


http://img.alicdn.com/bao/uploaded/i3/169840104363675631/TB2kinRdXXXXXbIXXXXXXXXXXXX_!!247586984-0-rate.jpg
http://img.alicdn.com/bao/uploaded/i2/169840104363646898/TB2en_VdXXXXXa8XXXXXXXXXXXX_!!247586984-0-rate.jpg
http://img.alicdn.com/bao/uploaded/i3/169840104363652311/TB20u6TdXXXXXbHXXXXXXXXXXXX_!!247586984-0-rate.jpg
http://img.alicdn.com/bao/uploaded/i3/169840104363636484/TB2EzPPdXXXXXcqXXXXXXXXXXXX_!!247586984-0-rate.jpg
http://img.alicdn.com/bao/uploaded/i4/19676077426198482/TB2kLEIcpXXXXXzXXXXXXXXXXXX_!!2262949676-0-rate.jpg
http://img.alicdn.com/bao/uploaded/i1/19676077641359344/TB2tXcFcpXXXXb.XXXXXXXXXXXX_!!2262949676-0-rate.jpg
M9
На сайте с 15.05.2014
Offline
79
#4

Вы меня спасли спасибо, но

почему то такая ошибка выдает(

Warning: Invalid argument supplied for foreach() in Z:\home\vk.test\ on line 27

думаю нужно обновить php на денвере спасибо)

W
На сайте с 09.04.2013
Offline
46
#5

Исправил.Данный код должен работать на денвере


<?php
$ch = curl_init('http://tao.ru/catalog/523396457734.html');
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);
preg_match('#item.js\?iid=(?P<iid>\d+)#', $page, $result);
$url = 'http://tao.ru/item.js?iid='.$result['iid'];

curl_setopt($ch, CURLOPT_URL, $url);
$json = curl_exec($ch);
$info = json_decode($json);
$itemId = $info->data->item->itemNumId;
$sellerId = $info->data->seller->userNumId;
$param = array(
'callback' => '_process_review_imgs_tmall',
'itemId' => $itemId,
'sellerId' => $sellerId,
'picture' => 1,
'currentPage' => 1,
);
$url = 'https://rate.tmall.com/list_detail_rate.htm?' . http_build_query($param);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$json = curl_exec($ch);
curl_close($ch);
$json = substr($json, 32, -1);
$json = json_decode(utf8_encode($json));
foreach ($json->rateDetail->rateList as $rate) {
foreach ($rate->pics as $img) {
echo str_replace('//img.', 'http://img.', $img) . '<br>';
}
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий