php - 如何通过 html 源中的 <script> 标签从网页中抓取数据。 (PHP)

标签 php web-scraping screen-scraping domdocument

我想从网页检索一些数据项。

网页链接:

http://www.walmart.com/storeLocator/ca_storefinder_results.do

我想要检索的数据项。

  • $StorePhone
  • $药房电话
  • $开放时间
  • $PharmacyHours

我尝试了很多,但无法做到这一点,因为没有为标签分配 id 或特定类,并且没有标签层次结构来获取每个标题的数据。

如果你看到上面页面的html源代码,那么<script>里面已经有以变量形式存在的数据项了。 tag ,谁能告诉我如何针对每个商店检索这些数据项

最佳答案

经典的抓取会让你很难处理这样的页面。您需要获取 url 的内容,然后通过正则表达式提取 stores 数组的元素。

如果您有时间学习一些新技术,我建议您查看phantomJS .

这个 headless 浏览器的行为就像浏览器一样并执行 JavaScript。

打开控制台时,您将看到 stores 数组是一个全局变量,因此使用 phantomJS 可以轻松读取该数组的内容。

phantomJS 脚本示例:

var url = "your url";
var page = require('webpage').create();
page.open(url, function (status) {
   var stores = page.evaluate(function () {
       return window.stores;
   });
   console.log(stores[0]);
});

关于php - 如何通过 html 源中的 &lt;script&gt; 标签从网页中抓取数据。 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10865524/

相关文章:

javascript - 如果文本输入为空或非则启用/禁用 “select”

javascript - 获取网站词频计数的最佳方法?还是网站的一部分?

javascript - 使用 puppeteer 进行 JS 网页抓取,出现此错误 : (node:12121) UnhandledPromiseRejectionWarning: TypeError: src. jsonValue 不是函数

asp.net - 这个 ASP View 状态是什么意思?

PHP Json_encode 将空格更改为加号 +

php - 如何在 PHP 中处理流式数据?

python - Scrapy FormRequest 参数不起作用,而是显示所有结果

python - 以编程方式登录网站以进行屏幕抓取的最佳方法是什么? (最好使用 Python)

python - 用 Python 抓取 Ajax

php - Mysql utf8字符错误