Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Парсер пользователей с воблы

-

Школа Читера

- Основы основ - начинаем писать статьи для начинающих с целью создания полноценного раздела

Ответ
 
Опции темы
Старый 17.09.2010, 11:25   #1
 Сержант
Аватар для MySexy
 
MySexy излучает ауруMySexy излучает ауруMySexy излучает ауруMySexy излучает ауруMySexy излучает ауруMySexy излучает ауру
Регистрация: 08.03.2010
Сообщений: 160
Популярность: 565
Сказал(а) спасибо: 21
Поблагодарили 166 раз(а) в 45 сообщениях
 
По умолчанию Парсер пользователей с воблы

Данный скрипт был написан для сбора логином с оф.форума ПВ (в многопоточном режиме на PHP), как сейчас потерял актуально выкладываю, может кому пригодиться

Используются curl_multi что позволяет увеличить скорость и главное уменьшаться время на парсинг страниц

Код:
<?php
/*
 * by MySexy for http://zhyk.ru
 * 2010
 * скрипт сбора логинов с офф.форума pwonline.ru
 */


class parser_forum_pwonline {
	
	private  $login_forum = '';
	private  $login_forum = '';
	
	public function curl_multi () {

		$urls = array();
		# в переменой $count_pages_forum количество страниц
		$count_pages_forum = 10;
		for ($i=1; $i <= $count_pages_forum; $i++) {
			$urls[] = 'http://forum.pw.mail.ru/memberlist.php?&order=asc&sort=username&page='.$i;
		}

		$threads = 3;
		$timeout = 30;

		$mcurl = curl_multi_init();
		$threadsRunning = 0;
		$urls_id = 0;

		while (true) {

			while ($threadsRunning < $threads && $urls_id < count($urls)) {
				$ch = curl_init();
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
				curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
				curl_setopt($ch, CURLOPT_URL, $urls[$urls_id++]);
				curl_multi_add_handle($mcurl, $ch);
				$threadsRunning++;
			}

			if ($threadsRunning == 0 && $urls_id >= count($urls))
				break;

			curl_multi_select($mcurl);
			while(($mcRes = curl_multi_exec($mcurl, $mcActive)) == CURLM_CALL_MULTI_PERFORM) usleep(100000);
			if($mcRes != CURLM_OK) break;
			while($done = curl_multi_info_read($mcurl)) {
				$ch = $done['handle'];
				$done_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
				$done_content = curl_multi_getcontent($ch);
				if(curl_errno($ch) == 0) {
					preg_match_all("#member.php?(.*?)\">(.*?)</a>#si", $done_content, $m_s_1);
					file_put_contents('user.db', file_get_contents('user.db')."\n".implode("\n",$m_s_1['2']));
					echo "{$done_url} YAE SEARCH<br>\n";
					flush();
					sleep(5);
					
				} else {
					echo "Link {$done_url} failed: ".curl_error($ch)."<br>\n";
					flush();
				}
				curl_multi_remove_handle($mcurl, $ch);
				curl_close($ch);
				$threadsRunning--;
			}
		}
		curl_multi_close($mcurl);
		echo 'Done.'; 
	
	}

}

echo '<pre>';
$p_m_r = new parser_forum_pwonline();
$p_m_r -> curl_multi ();
________________
База котов PW: [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многопоточный парсер by RazoRIII Soyox Архив Warcraft 3 2 23.05.2010 21:22

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 13:59.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net