php - 如何抓取网站内容(*复杂* iframe,javascript 提交)

标签 php javascript iframe web-scraping

我以前做过网页抓取,但从未如此复杂。我想从学校网站上获取类(class)信息。然而,所有类(class)信息都显示在网络抓取工具的噩梦中。

首先,当您点击“类(class)表”网址时,它会首先引导您浏览其他几个页面(我相信设置 cookie 并检查其他废话)。

然后它最终加载带有 iframe 的页面,该 iframe 显然只喜欢在从机构网页(即 arizona.edu)内加载时加载。

从那里必须通过按钮提交表单,这些按钮实际上不会重新加载页面,而只是提交 AJAX 查询,我认为它只是操纵 iframe。

这个查询对我来说特别难以复制。我一直在使用 PHP 和 curl 来模拟浏览器访问初始页面,收集适当的 cookie 等。但我认为我的 curl 函数发送的 header 有问题,因为它永远不会让我在初始“搜索表单”加载后执行任何类型的查询。

任何帮助都会很棒...

http://www.arizona.edu/students/registering-classes -> “类(class)表”

或者就在这里: http://schedule.arizona.edu/

最佳答案

如果你需要抓取大量使用 JS/AJAX 的网站 - 你需要比 php 更强大的东西;)

首先 - 它必须是具有执行 JS 能力的完整浏览器,其次 - 必须有一些用于自动浏览的 api。

假设您是个 child (还有谁需要解析学校)- 尝试使用 iMacros 的 Firefox .如果您是经验丰富的老手 - 看看 Selenium。

关于php - 如何抓取网站内容(*复杂* iframe,javascript 提交),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7481699/

相关文章:

javascript - Div 文本不显示

javascript - Android上的HTML5音频自动播放-iframe技巧

php - 使用 DOMPDF 获取 PDF 中的本地镜像

javascript - 2 ajax 在同一事件上 "onchange"导致冲突

php - mysql 版本 8.0.11 和 Symfony 4 错误 "MySQL server has gone away"

javascript - 从 WebStorage 获取一组的所有项目

PHP 调试器不会在断点 : Eclipse & Xdebug 处停止

javascript - 模块构建失败,Vue js 中的 vue-router.esm.js

javascript - 在父窗口的上下文中运行脚本

asp.net-mvc - 更改 FedAuth cookie 的 SameSite 属性?