【问题标题】:Finding out the URL called by an ajax action找出由 ajax 操作调用的 URL
【发布时间】:2012-05-11 00:29:11
【问题描述】:

我必须使用 php curl 抓取 this page。在这种情况下,当用户向下滚动时,会使用 ajax 加载更多项目。我可以调用 ajax 脚本调用的 URL 吗?如果是这样,那么我如何找出 URL 呢?我知道一点 ajax,但是那里的代码对我来说有点复杂。 这里是相关的js代码pastebin

或者,有人可以建议另一种抓取该页面的方法吗? PS:我这样做是有正当理由的。

编辑:我想通了。实时 http 标头。问题可以关闭。被遗忘。

【问题讨论】:

  • 你的问题有点混乱。您可以使用 Firebug for Firefox 等网络模块监控请求以及将它们发送到哪些 URL。 Chrome内置了它,我认为IE9也是如此。

标签: php ajax curl


【解决方案1】:

您可以为此使用FireBug。切换到 Console-Tab,然后让页面发出 AJAX 请求。

这是滚动到页面底部后应该看到的内容:http://www.flipkart.com/computers/components/ram-20214?_l=m56QC%20tQahyMi46nTirnSA--&_r=11FxOYiYfpMxmANj4kGJzg--&_pop=flyout&response-type=json&inf-start=20

如果您进一步滚动:http://www.flipkart.com/computers/components/ram-20214?_l=m56QC%20tQahyMi46nTirnSA--&_r=11FxOYiYfpMxmANj4kGJzg--&_pop=flyout&response-type=json&inf-start=40

令牌似乎始终保持不变:_l=m56QC%20tQahyMi46nTirnSA--_r=11FxOYiYfpMxmANj4kGJzg--_pop 参数也是如此:_pop=flyout 所以让我们看看其他参数:

这是主页:

//no additional parameters...

这是第一次“重新加载”:

&response-type=json&inf-start=20

这是第二次“重新加载”:

&response-type=json&inf-start=40

因此,显然您只需将&response-type=json&inf-start=$offset 附加到您的初始 URI 即可获得 JSON 格式的结果。您还可以在 FireBug 中查看内容,这应该可以很容易地使用它们。

截图如下:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多