curl 질문입니다. (curl 대상 : 공공기관-청약홈)

curl 질문입니다. (curl 대상 : 공공기관-청약홈)

QA

curl 질문입니다. (curl 대상 : 공공기관-청약홈)

답변 1

본문

짧은 지식에 5시간동안 삽질하다 원인이 무엇인지 도무지 감이 안잡혀 질문을 올려봅니다.

 

api 읽어오는 것들은 큰 문제없이 처리를 했는데, 제공받은 데이터의 url에서 curl이 제대로 안되어서 한참 애먹고 있습니다!

어떤 문제때문에? 제대로 못가져오는 걸까요?^^;;

 

curl로 데이터를 읽어오기 위한 페이지 url입니다. (어떠한 인증 없이 불러올 수 있습니다.)

https://www.applyhome.co.kr/ai/aia/selectAPTLttotPblancDetail.do?houseManageNo=2022000894&pblancNo=2022000894

 

아래는 삽질하다 마지막에 처리한 curl 소스입니다.

 

※※ 도와주신분에게 커피쿠폰 쏘겠습니다..!

 


$url = 'https://www.applyhome.co.kr/ai/aia/selectAPTLttotPblancDetail.do?houseManageNo=2022000894&pblancNo=2022000894';
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);       //POST data
  curl_setopt($ch, CURLOPT_POST, true);              //true시 post 전송
  
  $headers = [
      'accept: application/json',
      'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0',
      'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
      'Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3',
      'Accept-Encoding: gzip, deflate, br',
      'Connection: keep-alive',
      'Upgrade-Insecure-Requests: 1',
      'Sec-Fetch-Dest: document',
      'Sec-Fetch-Mode: navigate',
      'Sec-Fetch-Site: none',
      'Sec-Fetch-User: ?1'
  ];
  
  
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  
  $docu = curl_exec ($ch);
  
  curl_close ($ch);
  
  echo $docu;
  echo "<br/><br/><br/><br/><br/><br/>";
  
  //ISO-8859-1 -> utf-8 인코딩
  $utf8 = utf8_encode($docu);
  echo "<br/><br/><br/><br/><br/><br/>";
  echo bin2hex($utf8), "\n";
  

이 질문에 댓글 쓰기 :

답변 1

아이고야.. 자문자답입니다..^^;;

아무리봐도 header부분의 요청이 이상하다 싶어 문제되는 부분을 하나씩 찾다보니

accept-encoding을 할 필요가 없었던것 같습니다.

습관적으로 복붙을 했는데.. 습관이 문제였던것 같아요 ^^;

 

 

혹시나 추후에 청약홈 파싱하시는분들 중 헤매실 분들을 위해..

불필요한 코드 삭제하고 올려봅니다.

 


  $url = 'https://www.applyhome.co.kr/ai/aia/selectAPTLttotPblancDetail.do?houseManageNo=2022000894&pblancNo=2022000894';
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);       //POST data
  curl_setopt($ch, CURLOPT_POST, true);              //true시 post 전송
  
  $headers = [
      'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0'
  ];
  
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  $docu = curl_exec ($ch);
  curl_close ($ch);
  
  echo $docu;
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #curl ×
전체 97
© SIRSOFT
현재 페이지 제일 처음으로