Весь день писал скрипт, почти дошел до конца и тут проблема, которую никак не могу решить.
Весь код приводить не буду, там много чего делается, вот основные шаги:1. Моя функция для CURL:
PHP:
function URIRequest($url, $method=‘GET’, $params=FALSE, $user=FALSE, $pass=FALSE, $refferer=FALSE) { if ($method == ‘POST’) { } } if ($user) { } // установить куда сохранять куку, очень нужная вещь если есть авторизация и редиректы! // надо чтобы был доступ на запись. // в многопользовательской среде могут быть траблы с паралельным доступом к файлу. // Тогда надо хранить в временном файле //curl_setopt($ch, CURLOPT_REFERER, $refferer); curl_setopt( $ch, CURLOPT_USERAGENT, «Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko» ); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); // возвратить результат обработки в переменную а не на STDOUT // curl_close($ch); return $result; }2. Авторизуемся и переходим в профиль:
PHP:
$params[‘next’] = ‘/profile’; $params[‘login’] = $SETTINGS[‘avito_login’]; $params[‘password’] = $SETTINGS[‘avito_pass’]; $ret = $cm->URIRequest($SETTINGS[‘avito_login_url’], ‘POST’, $params, FALSE, FALSE, ‘http://www.avito.ru’);Все ок, в $ret оказывается HTML админки авито с моими объявлениями
3. Для проверки пробуем отредактировать какое-ниубдь свое объявлени:
PHP:
$edit_url = ‘https://www.avito.ru/items/edit/78071524’; $ret = $cm->URIRequest($edit_url, ‘GET’, FALSE, FALSE, FALSE, ‘https://www.avito.ru/profile/items/active/rossiya’);Тоже все ок, в $ret оказывается форма редактирования с моим объявленим. Т.е. авторизация не слетает, куки работают.
4. А теперь пытаемся дернуть статистику просмотров этого объявления. Получается она по следующему УРЛу: https://www.avito.ru/items/stat/78071524?step=0
пробуем и…PHP:
$stat_url = ‘https://www.avito.ru/items/stat/78071524?step=0’; $ret = $cm->URIRequest($stat_url, ‘GET’, FALSE, FALSE, FALSE, ‘https://www.avito.ru/profile/items/active/rossiya’);…облом. В $ret выдает 404, что такой страницы не найдено.
Если проверять в браузере, то все ок, если залогинен выдает статистику.
Если не залогинен (пытаешься чужое объявление просмотреть, например), то выдает так же выдает 404.Загвоздка скорее всего в том, что запрос этой страницы в админке осуществляется через Ajax и где-то наверное слетает авторизация. Но вот почему и как это пофиксить, я не знаю.
Подскажите плиз в какую сторону копать?
Тут запрещено парсинг обсуждать
Ммм.. Сорри не знал. Если так, то тогда прошу модераторов закрыть тему.
А даже интересно почему? Что плохого в парсинге? Это же просто элемент автоматизации.
Если сервис хочет делиться поисковым трафиком или предоставлять средства автоматизации, сервис предоставляет публичное API, позволяющее работать с сервисом через свои программные решения.
У авито есть вот такой вариант — ТЫЦ.
Если же сервис не хочет этого, то парсинг — это, по сути, кража контента. Хочешь что-то посмотреть — есть страница сайта.
А когда вырастает очередной магазин, новостной портал, спортивный гид, или даже поисковик, который, по сути, лишь пересылает запросы сайту-донору и парсит контент, выдавая за свой — это паразитизм. Кто-то трудится, делая контент и сервис, а кто-то пользуется этим, отнимая долю у того, кто трудится. Не делая ничего, кроме «разовой автоматизации».Сайты, являющиеся прокси-парсерами других сайтов не нужны. Они не имеют никакой ценности и лишь засоряют Интернет.
Когда же речь идет, например, о каких-нибудь агрегаторах, собирающих инфу и перенаправляющих трафик на сайты — доноры, разработчики этих сайтов, обычно, сами заинтересованы в подобной интеграции, и готовы предоставить необходимый инструментарий.
Яркий пример — яндекс.маркет.
Зачем сразу так категорично?
Объясню зачем это нужно мне.
Я продаю на авито и для меня важно анализировать статистику: количество просмотров объявлений, количество звонков, количество писем. В разрезе каждого объявления и каждого дня.
Вот для этого мне и нужно спарсить количество показов объявлений.
Тогда читайте документацию по ссылке, что я дал. Там инструментарий как раз для вашего случая описан.
Всем привет. Хотел узнать.
Как в боте Авито заменить ссылку текстом (гиперссылкой)
Т.е. например во фразу «форма регистрации» сделать кликабельной, ведущей на другой сайт.