无法从PHP脚本获取完整的源代码

无法从PHP脚本获取完整的源代码,php,web-scraping,Php,Web Scraping,所有项目都是“”html元素的一部分,其内容由javascript/AJAX调用生成,因此它们不能出现在通过file_get_contents()加载的html文件中,因为只有在不解释javascript代码的情况下才能获得html定义 但是,这意味着您可以通过代码直接访问项目/数据库(如果您知道端点) 例如(url如我测试它们时所示) 这将返回完整列表的前几项。它将返回类似以下内容(JSON格式): docid可用于对特定项目进行进一步查询,而url将返回图像 这也将返回第一个项目的图像,但使

所有项目都是“”html元素的一部分,其内容由javascript/AJAX调用生成,因此它们不能出现在通过file_get_contents()加载的html文件中,因为只有在不解释javascript代码的情况下才能获得html定义

但是,这意味着您可以通过代码直接访问项目/数据库(如果您知道端点)

例如(url如我测试它们时所示)

这将返回完整列表的前几项。它将返回类似以下内容(JSON格式):

docid可用于对特定项目进行进一步查询,而url将返回图像

这也将返回第一个项目的图像,但使用一些参数

无论如何,我只是触及整个问题的表面,以演示如何进行。您需要理解站点逻辑才能读取完整的数据集,但是联系网站管理员并让他描述其API/端点以便您访问数据会更容易。即使“API”不受保护,也要请求他允许使用它

了解端点、结构和数据描述后,可以使用诸如mashape\unirest之类的PHP库执行以下查询:

[{docid: "011PXX11.XX11.151106170721.W5H9",…}, {docid: "011PXX11.XX11.140302105210.Y9N8",…},…]
  0: {docid: "011PXX11.XX11.151106170721.W5H9",…}
      disp_pic: "http://images.jdmagicbox.com/delhi/h9/011pxx11.xx11.151106170721.w5h9/catalogue/6cf575ffbd1090f5a314d2cf40451c88.jpg"
      docid: "011PXX11.XX11.151106170721.W5H9"
  1: {docid: "011PXX11.XX11.140302105210.Y9N8",…}
      disp_pic: "http://images.jdmagicbox.com/delhi/n8/011pxx11.xx11.140302105210.y9n8/catalogue/ecfd2106644df17013e98bb60f40c527.jpg"
      docid: "011PXX11.XX11.140302105210.Y9N8"
      video: "http://videos.jdmagicbox.com/delhi/n8/011pxx11.xx11.140302105210.y9n8/video/fc2a62242ae03c74c15436dbcc04c33a_m.jpg"
  ...     

如果$response->code==200,那么$response->body就是包含文档数组的JSON对象。

这是无效的php。您需要
打印($data)而不是
打印\r$数据美元数据显示的内容。
打印后($data)?美元数据中仅显示“Nathus Sweets”。没有“意大利片”等。为什么会这样?您需要打印r($result)。我正在得到所有的信息。如果不是这样的话。检查您的php版本,您是否在本地使用它?您是否获得了$data中的“意大利切片”?我的php版本是5.5.9,是的,我在本地主机上使用它
[{docid: "011PXX11.XX11.151106170721.W5H9",…}, {docid: "011PXX11.XX11.140302105210.Y9N8",…},…]
  0: {docid: "011PXX11.XX11.151106170721.W5H9",…}
      disp_pic: "http://images.jdmagicbox.com/delhi/h9/011pxx11.xx11.151106170721.w5h9/catalogue/6cf575ffbd1090f5a314d2cf40451c88.jpg"
      docid: "011PXX11.XX11.151106170721.W5H9"
  1: {docid: "011PXX11.XX11.140302105210.Y9N8",…}
      disp_pic: "http://images.jdmagicbox.com/delhi/n8/011pxx11.xx11.140302105210.y9n8/catalogue/ecfd2106644df17013e98bb60f40c527.jpg"
      docid: "011PXX11.XX11.140302105210.Y9N8"
      video: "http://videos.jdmagicbox.com/delhi/n8/011pxx11.xx11.140302105210.y9n8/video/fc2a62242ae03c74c15436dbcc04c33a_m.jpg"
  ...     
Unirest\Request::verifyPeer (false) ;
$response =Unirest\Request::get (
    'http://www.justdial.com/functions/sortbyphotosnew.php?contractid=011PXX11.XX11.151106170721.W...,
    array ( 'Accept' => 'application/json' ),
    null
) ;