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문으로 저장하거나 사용한다.
두가지만 알아서 웬만한 크롤링은 가능하나
크롤링하려는 대상에 피해가 가지 않도록 적당히 수집하는게 좋다.