如何对复杂的动态网站进行逆向工程,以便能够复制它对服务器发出的 AJAX 调用?

问题描述 投票:0回答:1

假设我访问 eventbrite.com。它会自动加载我所在地区的事件。当我输入新区域时,它会加载该区域的事件。但是当我在 chrome 开发人员工具中检查网络活动时,我看不到新位置发送到服务器的位置或方式,也看不到对哪个端点的哪个请求。我看不到它在任何 GET 或 POST 查询字符串中发送。我无法确定页面上脚本的正反面,有这么多,而且大多数都被混淆了。

我希望能够使用 PHP 来抓取它。

请帮忙?谢谢

javascript ajax web-scraping cookies google-chrome-devtools
1个回答
1
投票

位置数据可能使用不同的方法发送到服务器,例如在请求标头或请求正文中。您可以采取以下步骤来尝试找出新位置是如何发送到服务器的:

检查请求标头:在 Chrome 开发者工具网络选项卡中,查看对 Eventbrite.com 的初始请求的请求标头。位置数据可能在标头之一中发送,例如“Referer”或“Origin”标头。

在更改位置时监控网络活动:尝试更改 Eventbrite.com 网站上的位置,并查看“网络”选项卡是否有任何新请求。如果您看到正在发出新请求,请检查请求标头和正文以查看是否将位置数据发送到那里。 查找 JavaScript 代码:位置数据可能是使用 JavaScript 代码发送到服务器的。查找页面正在加载的任何 JavaScript 文件,并尝试了解它们在做什么。您可以使用 Chrome 开发者工具中的“源代码”选项卡来查看和调试 JavaScript 代码。

使用像 Fiddler 这样的工具:Fiddler 是一种网络监控工具,可以帮助您捕获和检查 HTTP 流量。安装并配置 Fiddler 以拦截来自浏览器的流量,并尝试更改 Eventbrite.com 网站上的位置。 Fiddler 应该能够捕获正在发出的任何请求,包括请求标头和正文。

一旦确定了位置数据是如何发送到服务器的,就可以使用 PHP 复制请求并抓取数据。但是,请记住,抓取网站可能会违反其服务条款,并且在某些情况下可能是非法的,因此请确保在继续之前获得适当的许可或咨询法律专业人士。

© www.soinside.com 2019 - 2024. All rights reserved.