2017-01-26 3 views
0

현재 Amazon 고객 리뷰를 검토 링크로 가져 오는 방법은아마존 고객 리뷰 가져 오기 링크 별 내용. 방법?

PHP Simple HTML DOM Parser을 사용하는 것입니다.

검토 링크를 제공함으로써, 나는 각 내용에 대한 css selector을 알고 있다면이 모든 것이 가능하다 제목, 등급 댓글 등

설명, 이미지, 비디오, 저자, 같은 검토 내용을 가져올 수 있습니다 .

$url = 'REVIEW_URL_HERE'; 
$html = file_get_html($url,false); //see PHP Simple HTML DOM Parser 
$testSelector='#SAMPLE-SELECTOR'; 
$content = $html->find($testSelector, 0)->plaintext; 
//echo $content; //error-> seems selector is not present. 
echo $html; // i expect the review link page will be loaded. but the loaded page is different 

출력은 예상치 못한 :

당신에게 내가 어떻게 샘플을 표시합니다. I echo $html부터 검토 페이지가 필요합니다. 그러나 다른 페이지가 표시되었습니다 것 같다

Screen Snippet

내가 검토 내용을 가져 오기 위해 사용하고있는 방법은 더 이상 가능하지 않다. 새로운 방법에 대한 아이디어? 리뷰 가져 오기와 관련하여 AWS가 발견되었지만 리뷰 내용을 반환하지 않습니다 .. 리뷰 링크 만 반환합니다 ..

답변

0

물론 Amazon 개발자가되어야하며 API를 사용해야합니다. 문서 here을 확인하십시오.

+0

덕분에, 그것은 단지 iframe이 SRC 링크를 반환합니다 . 그리고 크로스 도메인 문제로 인해 .. iframe에서 내용을 가져올 수 없습니다 ... 당신이 어떻게 알지 못한다면? –

+0

file_get_contents를 사용하여 PHP에서 iframe의 내용을 읽을 수도 있고 CURL로 읽을 수도 있습니다. – Eric

+0

음, 괜찮아요. 아프다. 이걸 한번 확인해 주면 결과가 나온다. :) 감사 –

0

amazon api를 반복적으로 호출했을 수 있으므로이 메시지가 표시됩니다. 아마존은이 경우 IP 주소를 차단하고 있습니다. 인터넷 공급자를 변경하십시오, 그것은 일을 시작해야합니다.

0

아마 PHP와 PhantomJs에 간단한 Javascript를 사용해야합니다. 그리고 잊지 마세요 : 사용 프록시

이 같은 일부 : 내가 언급이

<?php 
$html = exec("phantomjs --proxy=127.0.0.1:80 --proxy-auth=root:master 
    test.js http://httpbin.org/ip"); 
?> 

test.js 응답 에릭에 대한

var args = require('system').args; 
var webPage = require('webpage'); 
var address = args[1]; 
var page = webPage.create(); 
var fs = require('fs'); 
var pageResponses = {}; 

page.settings.userAgent = 'Mozilla/5.0 (Windows NT 10.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'; 
page.settings.javascriptEnabled = true; 
page.settings.loadImages = false; 
phantom.cookiesEnabled = false; 
phantom.javascriptEnabled = true; 
page.settings.resourceTimeout = 20000; 
page.customHeaders = { // use correct header 
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Language": "en-US,en;q=0.5", 
    "Connection": "keep-alive", 
}; 
page.viewportSize = { width: 1024, height: 768 }; 

try { 
    page.open(address, function (status) { 
     console.log(page.content); 
     window.setTimeout(function() { 
      phantom.exit(); 
     }, Math.random()*500 + 1500); 
    }); 
} catch(e) { 
    phantom.exit(1); 
}