在javascript网站上为python请求构建XHR链接
我正在使用请求删除以下网站。 为了做到这一点,我正在浏览该网站,以找到XHR调用并获得如下url 代码如下:在javascript网站上为python请求构建XHR链接,javascript,python,python-3.x,python-requests,jqxhr,Javascript,Python,Python 3.x,Python Requests,Jqxhr,我正在使用请求删除以下网站。 为了做到这一点,我正在浏览该网站,以找到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,
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()
没问题。我的问题是,若我切换选项卡,比如从角点切换到夹具,就不会调用新的XHR。事实上,只有“实时匹配”和“角落”允许这种直接的XHR连接。我看到加载了一些js脚本,但我不能从那里复制我的前一步
我知道我可以使用selenium来解决这个问题,可能还可以使用对页面url的常规请求和BSoup,但我不明白的是,为什么有些选项卡使用XHR调用来加载数据,而其他类似的选项卡则使用js。
我想知道如何对这些js调用进行反向工程,以获得与第一部分类似的API。首先,您应该知道Chrome中的
XHR
(XMLHttpRequest)将记录所有ajax
请求
什么是Ajax Ajax是一组web开发技术,在客户端使用许多web技术来创建异步web应用程序 Ajax可以通过
JavaScript
或jQuery
实现(好吧,jQuery是一个JavaScript库,本质上是JavaScipt,但jQuery提供了一个关于Ajax
的API)
在示例页面中,源代码中有许多ajax请求:
我想知道如何对这些js调用进行反向工程,以获得与第一部分类似的API 如果您真的只想通过源代码实现,您应该:
GET
请求Javascript
(同时发送GET
请求)GET
请求,从中选择所需的数据您的意思是使用图片上的url,即
url='lv.scorebing.com/assets/js/comment.js?\u 31'
并执行requests.get?除此之外,我几乎不熟悉任何与javascript相关的东西selenium@puppet所有关于js
的url,不仅仅是comment.js
。对不起,我知道这对你来说可能微不足道,但正如我所说,我对js一无所知。你的意思是,为了得到任何东西,你需要请求每一个js?如果是这样,您将如何在请求之间连接?或者,你的意思是我需要请求每个加载对我有意义的部分数据的js,并且彼此独立,XHR
将记录ajax
请求。你需要的数据将不会加载到源代码中。当你在浏览器中加载页面时,它将执行JavaScript
。由于它在JavaScript
中有Ajax
请求,它还将向那些Ajax
url发送请求。(例如,您找到的其中一个url是)https://lv.scorebing.com/ajax/score/data?mt=0&nr=1&corner=1“
)。然后它将被放入页面中。