Форум → Программирование → PHP для идиотов → парсинг https с авторизацией
парсинг https с авторизацией
-
добрый день.
передо мной стоит задача распарсить сайт.
дело в том, чтоб получить доступ к информации, то необходимо авторизироваться на сайте.
параметры (логин и пасс) будут передавться через CURLOPT_POSTFIELDS
вопрос: а как узнать строку, по которой передаются данные?
посмотрев html код я увидел что пасс хранится в ctl00$ctl00$cph1$cph1$ctrlCustomerLogin$LoginForm$Password
а логин в &ctl00$ctl00$cph1$cph1$ctrlCustomerLogin$LoginForm$UserName
в итоге после подстановки этих значений и вывода страницы на экран я вижу белый экран.
вопрос глупый, но хочу спросить: можно ли парсить https страницы? -
-
-
-
-
Апрель 19, 2012, 2:18 п.п., спустя 12 часов 41 минуту 35 секунд
бля, опять заебываете.
ну серьезно
если ставить http://mail.ru/ - то все нормально. я вижу страницу
если HTTPS - то читсый лист.
почему так ?$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.md/");
curl_exec($ch);
curl_close($ch); -
Апрель 19, 2012, 3:12 п.п., спустя 54 минуты 41 секунду
как обычно. все заделываются php прогерами. типо умные.
а сами нихуя не подказывают.
может поможет али нет, но проблема была в SSL
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
и все работает. -
Апрель 19, 2012, 3:47 п.п., спустя 35 минут 7 секунд
блин, опять ХЗ
вот вывожу документ$result = curl_exec($ch);
curl_close($ch);
echo $result;
но не вся инфа подгружается.
та что нах-ся в табах не подгружается.
если вырубаю JS в браузере, то на реальном сайте пусто.
получается что подгрузка как-то идет через js ?
а как можно как-то установить метатег base с указанием основного url ? -
Апрель 19, 2012, 7:01 п.п., спустя 3 часа 13 минут 31 секунду
Если и правда страница собирается JS, то тебе придется выяснить какие именно запросы идут динамически и имитировать их. Поставь снифер.а как можно как-то установить метатег base с указанием основного url ?
этот вопрос как-то связан с предыдущим текстом? ))) base нужен только браузеру. если ты не браузер, то и ставить никуда не надо.ιιlllιlllι унц-унц -
Апрель 19, 2012, 7:17 п.п., спустя 16 минут 19 секунд
я думал что не хватает домена и по этому js не работал.
вот и хотел добавить base.
хоть я и добавил его, но проблема не решилась.
изображения и css подгрузились. а вот инфа та нет.
я нашел какой идет запрос
https://www.site.com/EtilizeDataService.svc//ProductAccessories?$format=json&$filter=productid eq 66539 and localeid eq 1& $orderby=categoryid
добавляя этот url в браузере я не вижу той инфы, что мне должен вернуться.
а мне предлагают сохранить файл.
сохряняя его я получаю ту инфу. она в json формате.
и теперь.
как мне получить эту инфу?
как мне симитировать этот запрос? -
Апрель 19, 2012, 7:24 п.п., спустя 6 минут 58 секунд
вот этот json и есть правильная инфа. ее использует js чтобы из этих данных слепить страницу. как — смотри исходники.
твоя конечная цель какая?Спустя 90 сек.передо мной стоит задача распарсить сайт
я под "распарсить" понимаю "вытянуть данные чтобы использовать где-то еще". так вот в json твои данные, не надо их в html превращать, это лишний тупой этапιιlllιlllι унц-унц -
Апрель 20, 2012, 4:02 п.п., спустя 20 часов 37 минут 46 секунд
вот этот json и есть правильная инфа.
спасибо.
но… давай по порядку.
1. сперва я авторизируюсь.
2. далее захожу на определенную страницу, как авторизированный и в переменную $result я получаю код запрашиваемой страницы ( $result = curl_exec($ch); )
3. теперь мне нужно вытащить ту часть инфы, которая передается динамически.
я посмотрел код, который принимает $result
там я нахожу jquery код$.ajax({ type: "GET"
, cache: false
, contentTypeString: "application/json"
, url: 'https://www.site.com/etilizeServices/EtilDataService.svc//ProductAccessories?$format=json&$filter=productid eq 10180 and localeid eq 1& $orderby=categoryid'
, success: cbRenderOptionsAccessories
, dataType: "json"
, error: cbFailedOptionsAccessories
});
вопрос: как мне получить данные изhttps://www.site.com/etilizeServices/EtilDataService.svc//ProductAccessories?$format=json&$filter=productid eq 10180 and localeid eq 1& $orderby=categoryid
Пожалуйста, авторизуйтесь, чтобы написать комментарий!