@zevem
Стрелец

Как парсить защищенные сайты?

Мне нужно спарсить алиэкспресс, но там через какое-то время всплывает верификация.

5f85b56e7d09f907467714.png

Бьюсь уже несколько дней, не дает никак спарсить.

Но если зайти напрямую по ссылке, то все нормально, заходит без никаких верификаций.
Вот мой код.

$url = "https://aliexpress.ru/af/category/202003449.html?categoryBrowse=y&origin=n&CatId=202003449&catName=sweaters";

$headers = array(
	'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
	'accept-encoding:  deflate, br',
	'accept-language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
	'cache-control: max-age=0',
	'sec-fetch-dest: document',
	'sec-fetch-mode: navigate',
	'sec-fetch-site: none',
	'sec-fetch-user: ?1',
	'upgrade-insecure-requests: 1',
	'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'
);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__ . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__ . '/cookie.txt');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36";
curl_setopt($curl, CURLOPT_REFERER, "https://aliexpress.ru/");
curl_setopt($ch, CURLOPT_HEADER, true);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$html = curl_exec($ch);
curl_close($ch);
print_r($html);


Подскажите, в какую сторону копать?

1) Можно ли чисто средствами curl спарсить али и обойти защиту? Или там все сильно защищено, что никак?

2) Может стоит использовать curl+selenium? Но сама технология мне пока непонятна. Может кто-нибудь знает.
  • Вопрос задан
  • 1006 просмотров
Пригласить эксперта
Ответы на вопрос 2
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..
Как парсить защищенные сайты в 2020 году?
Точно так же, как и в 2019.
Есть надежный(более или менее) способ. Скачиваете скелет расширения для вашего браузера, и пишите расширение на js для парсинга. Я не зная js, но зная python написал за пару вечеров расширение для парсинга номеров с olx. Оно было простенькое, номера выводились в консоль разработчика - тем не менее работало. Зная суть программирования, можно написать софт, который решает вашу задачу практически на любом языке за пару вечеров.
Ответ написан
Tomio
@Tomio
backend developer (python, php)
Закупайтесь пулом прокси адресов из разных стран =) 100-200 проксиков дадут вам спарсить энное количество данных.

Можете попроовать зарегистрироваться как разработчик и воспользоваться их апи вот тут

Еще есть какой-то сервис, который также предоставляет апи, но я про него ничего не знаю
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы