curl парсинг

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

Народ такой вопрос почему вот такой код:

$ch = curl_init('https://rate.taobao.com/feedRateList.htm?callback=json&userNumId=2618538028&auctionNumId=523222638660&siteID=1&currentPageNum=1&rateType=&orderType=sort_weight&showContent=1');

curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$page=curl_exec($ch);
curl_close($ch);
//$json = substr($page,5,-1);
print_r($page);

не дает результата? хотя по ссылке можно перейти.

L
На сайте с 30.10.2015
Offline
34
#1

в первой строчке ошибка. должно быть так:


$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'https://rate.taobao.com/feedRateList.htm?callback=json&userNumId=2618538028&auctionNumId=523222638660&siteID=1&currentPageNum=1&rateType=&orderType=sort_weight&showContent=1');
...
M9
На сайте с 15.05.2014
Offline
79
#2
levchernenko:
в первой строчке ошибка. должно быть так:


$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'https://rate.taobao.com/feedRateList.htm?callback=json&userNumId=2618538028&auctionNumId=523222638660&siteID=1&currentPageNum=1&rateType=&orderType=sort_weight&showContent=1');

Пробовал результат пустой проверьте тут этот код:


$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'https://rate.taobao.com/feedRateList.htm?callback=json&userNumId=2618538028&auctionNumId=523222638660&siteID=1&currentPageNum=1&rateType=&orderType=sort_weight&showContent=1');
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$page=curl_exec($ch);
curl_close($ch);
//$json = substr($page,5,-1);
print_r($page);

siv1987
На сайте с 02.04.2009
Offline
427
#3

Не является это ошибкой, урл можно указать и при вызове карл инит.

Включите curlopt_header и смотрите ответ сервера.

Вы используете запрос по https, отключите curl ssl verifier

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

Там идет проверка cookies(не пускает если не установлены куки с taobao.com) , откройте ссылку в приватной вкладке и убедитесь.

Кроме того, там используются редиректы и https.

Вот этот код должен помочь:


$cookies=tmpfile();
$ch = curl_init("http://taobao.com");
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//следуем за редиректом
curl_setopt($ch, CURLOPT_VERBOSE, 1);//включаем когда что-то непонятно
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);//используем куки
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);//отключаем проверку сертификатов
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_exec($ch);
curl_setopt($ch,CURLOPT_URL,'https://rate.taobao.com/feedRateList.htm?callback=json&userNumId=2618538028&auctionNumId=523222638660&siteID=1&currentPageNum=1&rateType=&orderType=sort_weight&showContent=1');
$page=curl_exec($ch);
curl_close($ch);
//$json = substr($page,5,-1);
print_r($page);
M9
На сайте с 15.05.2014
Offline
79
#5
webjey:
Там идет проверка cookies(не пускает если не установлены куки с taobao.com) , откройте ссылку в приватной вкладке и убедитесь.
Кроме того, там используются редиректы и https.
Вот этот код должен помочь:

$cookies=tmpfile();
$ch = curl_init("http://taobao.com");
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//следуем за редиректом
curl_setopt($ch, CURLOPT_VERBOSE, 1);//включаем когда что-то непонятно
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);//используем куки
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);//отключаем проверку сертификатов
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_exec($ch);
curl_setopt($ch,CURLOPT_URL,'https://rate.taobao.com/feedRateList.htm?callback=json&userNumId=2618538028&auctionNumId=523222638660&siteID=1&currentPageNum=1&rateType=&orderType=sort_weight&showContent=1');
$page=curl_exec($ch);
curl_close($ch);
//$json = substr($page,5,-1);
print_r($page);

Спасибо за правильное направления. Cкажите а тот код который вы дали в личке там обработчик php делаеть только правильный url а дальше по js парсить, а почему js'ом а не php это влияет на скорость?

W
На сайте с 09.04.2013
Offline
46
#6
mega94:
Спасибо за правильное направления. Cкажите а тот код который вы дали в личке там обработчик php делаеть только правильный url а дальше по js парсить, а почему js'ом а не php это влияет на скорость?

Да,потому что:

-js асинхронен

-ajax не вешает страницу + индикатор загрузки + lazyload

-в ответ идет jsonp => легко повесить callback функцию,зачем делать 2-ю работу на php?

-в идеале ,вообще можно обойтись без php,но мешает same origin policy.

M9
На сайте с 15.05.2014
Offline
79
#7
webjey:
Да,потому что:
-js асинхронен
-ajax не вешает страницу + индикатор загрузки + lazyload
-в ответ идет jsonp => легко повесить callback функцию,зачем делать 2-ю работу на php?
-в идеале ,вообще можно обойтись без php,но мешает same origin policy.

Спасибо за ответь :)

Q
На сайте с 23.12.2015
Offline
0
#8

Удалось что-то сделать?

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