가장 많이 사용하는 형태로
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문으로 저장하거나 사용한다.
두가지만 알아서 웬만한 크롤링은 가능하나
크롤링하려는 대상에 피해가 가지 않도록 적당히 수집하는게 좋다.
'WEB > PHP' 카테고리의 다른 글
워드프레스 별도 mysqli_query 등 sql 작업을 필요로 할때 (0) | 2022.06.30 |
---|---|
PHP REMOTE_ADDR로 사용자의 ip가 ipv4인지 ipv6인지 확인하는 방법 (0) | 2022.06.29 |
RSS 크롤링시 닫힘태그가 아닌 태그의 요소 파싱하기 (0) | 2021.08.31 |
[PHP] 문자열 자르기 한글깨짐 substr 말고 iconv_substr (3) | 2016.11.09 |
[PHP] fopen을 사용한 txt파일로 로그남기기 (0) | 2014.02.11 |