2017-01-26 2 views
0

В настоящее время мой способ извлечения Amazon Review Review by Review Link используетFetch Amazon Customer Review Содержание по ссылке. Как?

PHP Simple HTML DOM Parser.

Обеспечивая обзор Link, я могу принести вне Обзор Содержание как Заголовок, рейтинги Комментарии, Описание, изображения, видео, Автор и т.д.

Все это возможно, если я знаю 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 

Выход был неожиданным. поскольку я echo $html, я ожидаю страницу обзора. но с другой страницы было показано:

Screen Snippet

Кажется метод я использую для извлечения Обзор содержимого не возможно больше. любые идеи для нового метода? Я нашел AWS относительно выборки Обзоры ... но AFAIK он не возвращает обзор содержимого .. он возвращает только ссылки отзыва.

ответ

0

Уверенный, но вы должны быть разработчиком Amazon и использовать свой API. Ознакомьтесь с документацией here.

+0

Спасибо за ответ Эрик, как я уже говорил, он будет возвращать только IFrame Src ссылку , и из-за междоменных проблем .. я не могу получить содержимое в iframe ... если вы не знаете, как это сделать? –

+0

Вы можете прочитать содержимое iframe в PHP с помощью file_get_contents или даже прочитать его в CURL. – Eric

+0

hmmmm okay .. плохо проверить это и вернулся к вам, как только получил результат. :) благодаря –

0

Вы видите это сообщение, потому что вы, возможно, неоднократно вызывали apazon амазонки. В этом случае Amazon блокирует 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); 
} 
Смежные вопросы