繁体   English   中英

在 javascript 网站上为 python 请求构建 XHR 链接

[英]Build an XHR link on javascript website for python requests

我正在使用请求抓取以下网站评分 为此,我正在浏览网站以定位 XHR 调用并获得像这样的 url

页面位置 代码如下

import requests,json

header={some data from the XHR I got using Postman}
url='https://lv.scorebing.com/ajax/score/data?mt=0&nr=1&corner=1'

response=requests.get(url=url,headers=header,data=json.dumps({}))
response.json()

那里没有问题。 我的问题是,如果我切换选项卡,例如从 Corner 切换到 Fixture,则不会调用新的 XHR。 事实上,只有“Live Matches”和“Corners”允许这种直接的 XHR 连接。 我看到一些 js 脚本已加载,但我不能 go 从那里复制我的上一步。

新页面位置

我知道我可以使用 selenium 来抓取它,并且可能使用对页面的 url 的常规请求并使用 BSoup,但我不明白的是为什么某些选项卡会进行 XHR 调用以加载其他类似选项卡使用 js 的数据。 我想知道如何对这些 js 调用进行反向工程,以获得类似于第一部分的 API。

首先,你应该知道Chrome中的XHR (XMLHttpRequest)会记录所有的ajax请求。


什么是Ajax

Ajax 是一组 web 开发技术,在客户端使用许多 web 技术来创建异步 Z2567A5EC03705EB7AC2DZ8 应用程序。

Ajax could be achieved by JavaScript or jQuery (Well,jQuery is a JavaScript library.It is JavaScipt essentially,but jQuery offer a API about ajax ).

在您的示例页面中,源代码中有许多 ajax 请求: 在此处输入图像描述

在此处输入图像描述


我想知道如何对这些 js 调用进行反向工程,以获得类似于第一部分的 API。

如果你真的想通过源代码来做,你应该:

  1. 向页面发送GET请求。
  2. 分析页面源代码,然后迭代每个Javascript 。(同时发送GET请求。)
  3. 找到所有 ajax 请求并发送GET请求,select 从他们那里需要的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM