php - 如何使用 "PHP Simple HTML DOM Parser"获取ajax产品加载页面上的所有产品详细信息

标签 php parsing domparser

全部

我正在使用 PHP Simple HTML DOM Parser 来获取产品详细信息,例如标题和价格。 这是代码

<?php 

// Include the library
include('simple_html_dom.php');

// Retrieve the DOM from a given URL
$html = file_get_html('http://www.flipkart.com/mobiles/micromax');



// Find all SPAN tags that have a class of "myClass"
foreach($html->find('a.title') as $e){  
    echo 'Title: '.$e->outertext . '<br>';
    //$html = file_get_html('http://www.flipkart.com/mobiles/micromax/'.$e->outertext);

}

foreach($html->find('span.final-price') as $e)
    echo 'Price:'.$e->outertext . '<br>';


?>

结果

Title: Micromax X101 (White) 
Title: Micromax X291 (White) 
Title: Micromax X101 (Yellow) 
Title: Micromax X234+ (Wine Red) 
Title: Micromax Ninja 3 A57 (Black) 
Title: Micromax Ninja 4.0 A87 (Black) 
Title: Micromax Bling Q55 (Pearl White) 
Title: Micromax X222 (Cocoa Brown) 
Title: Micromax X263 (Champagne & Coffee) 
Title: Micromax X650 (Silver White) 
Title: Micromax A73 (Black) 
Title: Micromax X1i XTRA (Black) 
Title: Micromax Superfone Lite A75 (Charcoal Black) 
Title: Micromax X271 (Black & Blue) 
Title: Micromax X50 (Black) 
Title: Micromax Q56 (Baby Pink) 
Title: Micromax X104 (Black) 
Title: Micromax Q22 (Black Green) 
Title: Micromax Aisha A52 (Yellow) 
Title: Micromax A78 (Coffee) 
Price:Rs. 999
Price:Rs. 1910
Price:Rs. 999
Price:Rs. 1190
Price:Rs. 4999
Price:Rs. 6049
Price:Rs. 3130
Price:Rs. 2040
Price:Rs. 1735
Price:Rs. 3350
Price:Rs. 6199
Price:Rs. 1525
Price:Rs. 6299
Price:Rs. 1590
Price:Rs. 4850
Price:Rs. 3999
Price:Rs. 1099
Price:Rs. 1880
Price:Rs. 4699
Price:Rs. 6970

这工作正常,但请在浏览器中打开此页面 http://www.flipkart.com/mobiles/micromax 。有ajax产品加载功能。

所以我的脚本仅获取初始加载的产品。我想获得所有产品。 您可以看到“显示 78 中的 1-20”。如何获取全部 78 个产品详细信息?

最佳答案

您可以读取他们的产品数量,然后除以 20,因为他们显示的是 20,并使用他们的 AJAX 脚本来获取值。这样你就可以避免 simple_html_dom 并解码 json 字符串:

http://www.flipkart.com/mobiles/micromax?response-type=json&inf-start=0
http://www.flipkart.com/mobiles/micromax?response-type=json&inf-start=20

等等。

您只需要检查页面滚动期间调用的脚本即可。在 Google Chrome 中,您可以使用开发者工具,使用 F12 打开并观察网络部分。

关于php - 如何使用 "PHP Simple HTML DOM Parser"获取ajax产品加载页面上的所有产品详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12669101/

相关文章:

smtp - 从本地主机发送到服务器的 PHP 邮件

php - 使用复选框更新 MySql 数据库

javascript - 我无法在 javascript 中将对象从字符串解析为对象

parsing - 为什么有 LR(0) 解析器而没有 LL(0) 解析器?

javascript - 使用 HTML5 FILE API 读取和解析 XML 文件

url - DOMParser 中的可选 baseURI(位置)?

java - 如何在 Java 中格式化 XML 模式验证错误消息?

php - 当日期是 unix 时间戳时需要帮助,需要当前月份

php - 使用whereHas Eloquent 关系查询

java - 不幸的是,解析应用程序已停止在后台连续工作