X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Добавить ответ в эту тему
> Нужен программист ajax + php для небольшой работы
Winlook
Winlook
Topic Starter сообщение 22.11.2010, 12:24; Ответить: Winlook
Сообщение #1


Оставляйте свои контакты.

Работа связана с граббингом.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 22.11.2010, 13:09; Ответить: ZhukV
Сообщение #2


Skype -- zhuk-vitaliy
Аська снизу.
Примеры готовых грабингов могу показать.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 22.11.2010, 16:14; Ответить: ZhukV
Сообщение #3


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

Припустим, что форум находится по адресу: http://domain.com
Отсюда, можно сказать, что страница просмотра всех сообщений юзера выглядит так:
http://domain.com/forum/user/{$number_user}/post/all/ , где $number_user - номер юзера.
Теперь, нужно подключится и достать список всех страниц.
Для подключение, можеш использовать:
[php]
class CUrl{
public $url = '';
public $cookie = 'PHPSESSID=ea959c4515a4319596d5b7072527f4d0; cy-pr_FORUM_GUEST=0-1290422286; __utma=124551960.2113362369.1290418677.1290418677.1290418677.1; __utmb=124551960.19.10.1290418677; __utmc=124551960; __utmz=124551960.1290418677.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); cy-pr_FORUM_GUEST=0-1290422286; cy-pr_FORUM_GUEST_TID=2568-1290422331%2F2439-1290423549; cy-pr_FORUM_GUEST_TID=2568-1290422331%2F2439-1290423549; cy-pr_LOGIN=Lich; cy-pr_SOUND_LOGIN_PLAYED=Y';
public $browser = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729)';

protected $CUrlError;

private $result ;

private function setErrorCUrl($code = '', $text = '', $type = E_USER_NOTICE){
$view_error = true;
if($code === true){
$type = $text;
$code = curl_errno();
$text = curl_error();
}
if(!$text || !$type){ return !trigger_error('Not parameters', E_USER_WARNING); }
$this -> CUrlError = array('CODE' => $code, 'TEXT' => $text, 'TYPE' => $type, 'ERROR' => true);
if($view_error == true){ trigger_error($text, $type); }
return true;
}

protected function isErrorCUrl(){
return $this -> CUrlError['ERROR'];
}

public function getResult(){ return $this -> result; }


public function init(){
$all = get_loaded_extensions();
if(!in_array('curl', $all)){ $this -> setErrorCUrl('', 'Not libary "php_curl.dll". Please initialization libary.', E_USER_ERROR); }
if(!$this -> url){ return !$this -> setErrorCUrl('', 'Not url connected!!! Please write url.', E_USER_WARNING); }
$curl = curl_init($this -> url);
if(!is_resource($curl)){ return !$this -> setErrorCUrl('', 'CUrl no resource.', E_USER_WARNING); }
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if($this -> browser){ curl_setopt($curl, CURLOPT_USERAGENT, $this -> browser); }
if($this -> cookie){
if(is_array($this -> cookie)){
foreach($this -> cookie as $k => $v){
$temp .= "{$k}={$v}; ";
}
}elseif(is_string($this -> cookie)){ $temp = $this -> cookie; }
else{ return $this -> setErrorCUrl('', 'Bad parametr cookie.', E_USER_WARNING); }
curl_setopt($curl, CURLOPT_COOKIE, $temp);
}
$out = curl_exec($curl);
if(!$out){ return !$this -> setErrorCUrl('', 'Not result CUrl'); }
$this -> result = $out;
curl_close($curl);
return $this -> result;
}

function __construct($start = false){
if($start === true){ $this -> init(); }
}
}

[/php]Здесь сразу переданы куки пользователя и браузер мозилла.
Вот прмер:
[php]
$CUrl = new CUrl();
$CUrl -> url = "http://domain.com/forum/user/{$number_user}/post/all/";
$CUrl -> init();
echo $CUrl -> getResult();
[/php]Теперь нужно достать список всех страниц.
Вот функция:
[php]
$number_user = '20512';
function getAllPageView($text){
global $number_user;
$pattern = '/<a href="\/forum\/user\/' . $number_user . '\/post\/all\/\?PAGEN_1=(\d+)" class="">2<\/a>/Uis';
preg_match_all($pattern, $text, $m);
$all = array_unique($m[1]);
return $all;
}
//Обезательно должен быть номер юзера.
[/php]Теперь, таким же макаром подключаешся вот по такой ссылке:
/forum/user/$number_user/post\/all/?PAGEN_1=$page
Думаю объснять это не нужно.
Далее сложиваеш регулярку для парсера сообщений, после чего вытаскиваеш ссылку и номер поста.
Вот припустим ссылка:
http://domain.com/forum/f35/t2439/m26733#message26733
Здесь:
http://domain.com/forum/f35/t2439/m26733 -- ссылка
message26733 -- пост

Далее, опять подключаешся ко всем найденным ссылкам и делаеш парсер именно контейнера и id=пост.
После того, там должен быть припустим такой код:
RatingVoting('FORUM_POST', '26635',  '1290427971', 'plus')
Вытаскиваеш 2 и 3 атрибут функции.
И отправляеш на
http://domain.com/bitrix/components/bitrix...TION=voteAction
Где:
ENTITY_TYPE_ID - второй атрибут функции
ENTITY_ID - третий атрибут функции
VOTE_ACTION - plus|minus -- что делать.

В результате получиш данные в формате json, далаеш парсер и узнаеш, прошло или нет.

--------------------------------------------------------------
Если нужно будет еще что, спрашивай.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Добавить ответ в эту тему
Быстрый ответ
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Обучение Email Рассылкам + Софт Для Автоматизации (100к в сутки с сервера)
10 zennoboss 4599 Сегодня, 5:20
автор: Skyworker
Открытая тема (нет новых ответов) Посоветуйте массажер для спины и шеи
9 Boymaster 873 Вчера, 13:56
автор: Vmir
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
151 adw-kupon.ru 19823 Вчера, 13:52
автор: Vmir
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
14 Aloof 3376 Вчера, 13:50
автор: Vmir
Открытая тема (нет новых ответов) Имитация работы залог успеха?
21 metvekot 1483 Вчера, 11:51
автор: Skyworker


 



RSS Текстовая версия Сейчас: 24.4.2024, 5:41
Дизайн