php 파싱 질문드립니다
본문
https://www.amazon.com 사이트를 파싱해서 값을 가져올려고하니 봇으로 인식하여 캡차화면을 뛰우네요..curl 이나 simple_html_dom 해도 마찬가집니다.. 방법이없을까요 ㅠㅠ
답변 2
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://www.amazon.com/");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = [
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding: gzip, deflate',
'Accept-Language: en-US,en;q=0.5',
'Cache-Control: no-cache',
'Content-Type: application/x-www-form-urlencoded; charset=utf-8',
'Host: www.amazon.com',
'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Mobile Safari/537.36',
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$server_output = curl_exec ($ch);
curl_close ($ch);
print $server_output ;
이렇게 하시면 캡차는 안뜰거에요.. 근데 SSL때문인지 내용이 깨져 나옵니다. 이 부분은
http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/
이 링크를 보시고 잘 해결하시길 바래요
!-->proxy를 사용하면 가능하긴 한데 proxy도 시간이 좀 지나면 차단되더라고요 ^^;;
적은 양을 하시는거라면 proxy를 시간대별로 바꾸도록 하시면 가능할수도 있습니다.
답변을 작성하시기 전에 로그인 해주세요.