WEB/PHP

PHP 크롤링 일반페이지와 XML파싱할때

Ezcode 2022. 7. 4. 17:33

 

가장 많이 사용하는 형태로

curl과 simplexml_load_file의 간단 사용법

 

$url = "파싱할 주소";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, 0); // 0이 default, POST일 경우 1
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // https사용유부
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36"); //User Agent 설정

$result = curl_exec($ch);
curl_close ($ch);

 

단순 curl 사용할대는 post인지 혹은 https의 유무에 따라 옵션만 변경해서 사용한다.

$referer로 해당 서버에 referer를 넘겨줄 수도 있다.

 

 

 

$url = "파싱할 XML주소";

$xml = simplexml_load_file($url, 'SimpleXMLElement', LIBXML_NOCDATA);
//print_r($xml); exit;

foreach($xml->channel->item as $item) {

	$ndate = date("Y-m-d H:i:s", strtotime($item->pubDate));
	$title = addslashes($item->title);
	$link = $item->link;
    // 등등
}

 

XML같은 경우는 simplexml_load_file 를 사용한다.

xml의 구성에 따라 변수로 담아 foreach문으로 저장하거나 사용한다.

 

두가지만 알아서 웬만한 크롤링은 가능하나

크롤링하려는 대상에 피해가 가지 않도록 적당히 수집하는게 좋다.