php 按链接获取Amazon客户评论内容,方式?

gpfsuwkq  于 2023-02-18  发布在  PHP
关注(0)|答案(3)|浏览(136)

目前,我通过评论链接获取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,我期待的审查页。但显示了不同的页面:

看来我用来获取评论内容的方法是不可能了。任何想法的新方法?我发现AWS关于获取评论...但AFAIK它不返回评论内容..它只返回评论链接..

gab6jxml

gab6jxml1#

当然可以,但是你必须是亚马逊的开发人员并使用他们的API。请查看这里的文档。

ruoxqz4g

ruoxqz4g2#

你看到这条消息,因为你可能已经反复调用亚马逊apis。亚马逊是封锁ip地址在这种情况下。改变你的互联网供应商,它应该开始工作。

34gzjxbg

34gzjxbg3#

也许你需要使用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);
}

相关问题