Мульти-айпишный парсер
Декабрь 20th, 2007 | by Chippa |Бывают такие ситуации, когда нужно быстренько напарсить контента, а проксей хороших под рукой нету.
Вот, написал небольшую функцию для использования нескольких айпишек для исходящих соединений.
Что делать дальше с контентом – решать Вам. В качестве примера – парсинг сниппетов блогсирча.
$keyword - кейворд в urlencode();
__________________________________
error_reporting(0);
function parsenewsnippets($keyword)
{
$ip[0]=’77.77.77.72′;
$ip[1]=’77.77.77.73′;
$ip[2]=’77.77.77.74′;
$ip[3]=’77.77.77.75′;
for ($k=0;$k<count($ip);$k++)
{
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$sourceip = $ip[$k];
socket_bind($sock, $sourceip);
socket_connect($sock, ‘blogsearch.google.com’, 80);
if($k==»0″){$ss=»0″;}else{$ss = $k . «00″;}
$request = ‘GET /blogsearch?hl=en&num=100&start=$ss&ie=UTF-8&sa=N&q=’ . $keyword . ‘ HTTP/1.0′ .
«\r\n» .’Host: blogsearch.google.com ‘ . «\r\n\r\n»;
socket_write($sock, $request);
while(!socket_last_error($sock)){
if($buffer=socket_read($sock,1,PHP_NORMAL_READ)){
$content .= $buffer;
}
}
socket_close($sock);
sleep(5/count($ip));
}
$d = $content;
$content = «»;
return $d;
}
__________________________________
1 Trackback(s)
You must be logged in to post a comment.