Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / cURL. что-то меня выдает) / 8 сообщений из 8, страница 1 из 1
17.06.2016, 01:39
    #39257451
Винт_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cURL. что-то меня выдает)
Доброго времени суток!

Вводные:
Три дня назад технари в алиэкспрессе отрубили старое API никого заранее не предупредив.
В итоге несколько сайтов теряют позиции, т.к. для роутинга используются категории и характеристики товара.


Хотел спарсить данные о категории товара с алиэкспресса (с карточки товара),
Воспользовался cURL'ом :

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
	$file = $_SERVER['DOCUMENT_ROOT'].'/tmp/cookie.txt';
	$uagent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Vivaldi/1.2.490.39';


	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);             // если будет редирект - переходим
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);             // возвращать результат
	curl_setopt($ch, CURLOPT_HEADER, 1);                     // не возвращать http-заголовок
	curl_setopt($ch, CURLOPT_ENCODING, "");                  // обрабатывает все кодировки
	curl_setopt($ch, CURLOPT_USERAGENT, $uagent);            // браузер
		curl_setopt($ch, CURLOPT_COOKIEFILE, $file);         // куки
		curl_setopt($ch, CURLOPT_COOKIEJAR,  $file);         // 
	curl_setopt($ch, CURLOPT_REFERER, $url);                 // реферер
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);            // таймаут соединения
	curl_setopt($ch, CURLOPT_TIMEOUT, 10);                   // таймаут ожидания
	$html = curl_exec($ch);
	curl_close($ch);
	return $html;



на что сервак отдает такое:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
HTTP/1.1 302 Found
Date: Thu, 16 Jun 2016 22:34:13 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Connection: keep-alive
Set-Cookie: ali_apache_id=10.182.248.57.1466116453204.767253.7; path=/; domain=.aliexpress.com; expires=Wed, 30-Nov-2084 01:01:01 GMT
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=1CAA36D16F7808CD71A485C50FEF5BA2; Path=/; HttpOnly
P3P: CP="CAO PSA OUR"
Set-Cookie: xman_us_f=x_l=0; Domain=.aliexpress.com; Expires=Wed, 05-Jul-2084 01:48:20 GMT; Path=/
Set-Cookie: acs_usuc_t=acs_rt=45251787111d43b2991381db69e16178; Domain=.aliexpress.com; Path=/
Set-Cookie: xman_t=ZwqMCIOilNO7aG429rNQ2kSqIAe18DzrLGYY99hUSQERwJu7GMJF+s9XSUzvz0XR; Domain=.aliexpress.com; Path=/; HttpOnly
Set-Cookie: xman_f=cZ2P5jQRoiyiqHj6O4VxtzrU7tU/5U4seaJlWDVKAUeMfBpM2Wq3vgmbk2nLXdO+t1K2d8htBnXgXXOHFaTOxhhFTXDynNjfDVOMMHx0mdWiKGCBSzBzuw==; Domain=.aliexpress.com; Expires=Wed, 05-Jul-2084 01:48:20 GMT; Path=/; HttpOnly
Location: http://sec.aliexpress.com/query.htm?smApp=aedetail&smPolicy=aedetail-detail_item-anti_Spider-htmlrewrite-checklogin&smCharset=UTF-8&smTag=MTA0LjEzMS4yMjAuNTEsLDg0NDU1MTBmZDkzZDRiOWFiNDFlODRjOTQ5Njg5ZTNh&smReturn=http%3A%2F%2Fwww.aliexpress.com%2Fitem%2FWches-2016%2F32606226331.html&smSign=9GMRV2EyrvKKZ%2BcL4xQDYg%3D%3D&smLocale=en_US
Content-Language: en-US
Access-Control-Allow-Origin: http://hz.aliexpress.com
Timing-Allow-Origin: *



не совсем понял, как? - Location: http://sec.aliexpress.com/query.htm?smApp=aedetail&smPolicy=aedetail-detail_item-anti_Spider-htmlrewrite-checklogin

Ведь аналогичный запрос скажем в режиме инкогнито такой Location не отдает .

проверил с помощью Postman - тоже все ок.. Или cURL как-то палица?

посоветуйте, куда копать
...
Рейтинг: 0 / 0
17.06.2016, 02:24
    #39257454
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cURL. что-то меня выдает)
Винт_87
Код: php
1.
curl_setopt($ch, CURLOPT_REFERER, $url);

Не знаю, в этом ли причина, но я бы на месте веб-сервера в такое не поверил бы :)

Попробуйте на более низком уровне посмотреть что реально передается и сравнить с браузером. Хоть даже Wireshark-ом.
...
Рейтинг: 0 / 0
17.06.2016, 12:15
    #39257731
Винт_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cURL. что-то меня выдает)
miksoft , спасибо.
Инструмент себе в коллекцию заберу, пригодится.

miksoft Не знаю, в этом ли причина

причина оказалась не в том - просто у ребят из Китая есть списки IP хост провайдеров и собственно что с Digital Ocean , что с отечественного Sprinthost - срубают запросы. при том запрос с localhost нормально проходит.

вот такая заковыка. Пока ломаю голову как это обойти.
...
Рейтинг: 0 / 0
17.06.2016, 14:36
    #39257859
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cURL. что-то меня выдает)
Чего тут голову ломать - прокси. Только не из общедоступных.
...
Рейтинг: 0 / 0
28.06.2016, 02:34
    #39263331
Винт_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cURL. что-то меня выдает)
vkle,

с проксями получилось, но не надолго. купил пробную партию, но не один не подошел, на все отдавалась капча.

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

но проблема остается - 20 прокси из "белого" списка улетели в бан за ночь. я так не напасусь прокси..

посещаемость в среднем 500 в сутки..

данные хранятся в мемкеше и тянуться с али только если нет в кеше.

Может есть еще идеи?
...
Рейтинг: 0 / 0
28.06.2016, 09:13
    #39263400
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cURL. что-то меня выдает)
Винт_87,

Есть. Имитировать поведение браузера и посетителя сайта более точно. Или использовать настоящий браузер. "На том конце" не дураки же сайт поддерживают, приняли необходимые меры против ботов.
...
Рейтинг: 0 / 0
28.06.2016, 09:16
    #39263403
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cURL. что-то меня выдает)
Винт_87Может есть еще идеи?
ознакомится с лицензионным соглашением
...
Рейтинг: 0 / 0
28.06.2016, 21:13
    #39264243
Винт_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cURL. что-то меня выдает)
Изопропилознакомится с лицензионным соглашением
Спасибо, ждал этого совета


vkle"На том конце" не дураки же сайт поддерживают
Согласен, не дураки)

vkleИмитировать поведение браузера и посетителя сайта более точно
Попробую, спасибо. Видимо есть ifram'ы или скрипты которые проставляют доп.кукисы или что нибудь в этом ключе.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / cURL. что-то меня выдает) / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]