Шпаргалка: парсинг сайта с помощью cURL и simple_html_dom

Мне по службе порою частенько нужно парсить сайты. Дело это очень интересное, хоть и нудное.

Выкладываю тут небольшой php скриптик, который проверяет, если данная ссылка рабочая и возвращает нужный контент.


// http://simplehtmldom.sourceforge.net/manual.htm
include_once('simple_html_dom.php');

$link = 'http://www.link.com/path/to/page.html';

$handle = curl_init($link);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($response !== false)
{
	if($httpCode != 404)
	{
		$html = file_get_html($link);	

		if ($html->find('#someid'))
		{
			$result = $html->find('#someid',0)->plaintext;
		}
		else
		{
			echo 'bad link';
		}
	}
	else
	{
		echo 'bad link';
	}
}
else
{
	echo 'bad link';
}

curl_close($handle);

А вот пример, если нужно парсить сайт, но для входа нужна авторизация (и вы ее конечно же знаете):


//login form action url
$url="http://site.com/login.asp"; 
$postinfo = "email=mail@site.com&pwd=123456&submit=Login";

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIE, "cookiename=0");
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo);
curl_exec($ch);

//page with the content I want to grab
curl_setopt($ch, CURLOPT_URL, "http://site.com/page.asp");
$html = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

Добавить коментарий

Что за сайт

Этот сайт представляет унифицированную базу, где инфа собрана в единое целое, а не разбросанна по многочисленным сайтам, записям на листах бумаги или головам людей; а так же доступна круглосуточно не зависимо от кого-либо или чего-либо.

ФРЕНДЗОНА

Будь в курсе

Интересненько

Поехали