如何回显 php 中包含 js 文件的网站页面?

How to echo a website page in php that has js file in it?

我想抓取一个网站:https://tse.ir/MarketWatch.html

我知道我必须使用:

file_get_contents("https://examplesite.html")

获取网站的 html 部分,但是如何找到网站的特定部分,例如文本文件中的这一部分:

<td title="دالبر"title="something" class="txtclass="someclass">Tag namad">دالبر<Name</td>

当我打开文本文件时,我从来没有看到这部分,我认为这是因为在网站中有 JavaScript 文件。我怎样才能得到网站的所有信息,包括我想要的每一个部分?

ajax 通过 javascript 请求加载的内容。这意味着您无法通过简单地抓取页面内容来获取此数据。

有两种方式收集您需要的数据:

  1. 使用基于selenium webdriver的解决方案通过真实浏览器加载此页面(将执行JS),并从呈现的数据中收集数据DOM。
  2. 研究网站发送什么样的请求来获取这些数据。您可以在浏览器开发工具中使用网络 activity 选项卡。这里是example for chrome。对于其他浏览器是相同或相似的。比您发送相同的请求并根据您的需求快速响应。

在您的特定情况下,您可能可以使用此 url: https://tseest.ir/json/MarketWatch/data_211111.json 来访问包含您需要的数据的 json 对象。

您有三种抓取数据的变体:

  1. 有一个导出到 excel 文件:https://tse.ir/json/MarketWatch/MarketWatch_1.xls?1582392259131。解析它,记住这个数字是 Unix 时间戳,其中前 10 个数字是 month/day/year/hours/minutes

  2. 此外,页面中加载的所有 .js 文件中的某处可能还有市场数据的刷新功能。只要找到它,看看是否可以直接连接到源(通常是 .json)

  3. 以您指定的时间间隔下载页面并使用 PHP 的 DOMXPath::query

  4. 抓取每个 table 行