如何解析使用无限滚动技术显示内容的网站?

how to Parse a website that is using infinite scroll technique to display content?

我怎样才能抓取那里的所有数据?我正在编写一个 php 脚本来从具有动态加载程序的网站上抓取数据。我正在使用 HTML Dom 解析器和 scoopy 来抓取以下网站 https://www.lyoness.com/au/search/partner/。 我是初学者,我无法确定如何解析无限滚动条。

<input id="btnNextPage" type="button" class="btn btn-primary" style="width: 100%" value="Next page">

这是 link 用于使用 ajax、

提取内容
https://www.lyoness.com/au/search/loadpage?cp=1&area=2&st=&rz=&rzc=&f=&ft=Basic&c=AU&r=12&la=en-AU&s=Default&isPreviousPageClick=false&_=

cp 变量是您正在加载的页码。这意味着如果仍有内容返回,您可以遍历所有数字。

你无法使用 php 访问此 link 因为即使通过浏览器访问它也是不可能的,我尝试使用 ajax 并且它有效,这是 ajax 代码你可以在页面控制台中输入并更改 cp 它将打印 ajax 内容,你可以添加一个带有一些延迟的循环

$.ajax({
url:'https://www.lyoness.com/au/search/loadpage?cp=5&area=2&st=&rz=&rzc=&f=&ft=Basic&c=AU&r=12&la=en-AU&s=Default&isPreviousPageClick=false&_=',
success:function(data){
  console.log(data);
}
})

您可以 post 使用 jquery 将返回的数据抓取到您的服务器后 post (这在使用 php 库时非常容易)或使用某种方式获取请求并保存到数据库 API 或禁用浏览器的跨域安全选项。

编辑:

这里是 php 使用 CURL

检索第一页的代码
    if (!function_exists('curl_init')){
            die('Sorry cURL is not installed!');
    }
    $url = 'https://www.lyoness.com/au/search/loadpage?cp=1&ft=Basic&c=AU&r=12&la=en-AU&s=Default';

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_ENCODING , "gzip");
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla-Djokage/1.0");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'X-Requested-With: XMLHttpRequest'
    ));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    $output = curl_exec($ch);
    echo $output;
    //echo 'Curl error: ' . curl_error($ch);

    curl_close($ch);

你需要遍历 url 中的 cp 变量来解析所有页面,你还需要抓取 $output html 来获取所有变量并将它们保存到DB,我已经尝试了代码并且它工作正常。我希望你能接受这个解决方案