Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript网站上为python请求构建XHR链接_Javascript_Python_Python 3.x_Python Requests_Jqxhr - Fatal编程技术网

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

在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,

我正在使用请求删除以下网站。 为了做到这一点,我正在浏览该网站,以找到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()
没问题。我的问题是,若我切换选项卡,比如从角点切换到夹具,就不会调用新的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
    请求)
  • 找到所有ajax请求并发送
    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“
    )。然后它将被放入页面中。