您如何知道 XHR 请求需要哪些参数?
Posted
技术标签:
【中文标题】您如何知道 XHR 请求需要哪些参数?【英文标题】:How do you know which parameters are needed for an XHR request? 【发布时间】:2015-10-05 17:47:56 【问题描述】:我正在使用请求从http://fplstatistics.co.uk/Home/Events 获取 json 文件,为此我使用的是典型的
response = requests.get(url, params=params, headers=headers)
这里params
是一个大约 35 行的字典,我认为它相当大。您可以通过转到网络面板 -> XHR -> 标题 -> 查询字符串参数来查看这些参数。我想知道param
字典是否真的需要包含所有查询字符串参数,如果不需要,你怎么知道哪些是需要,哪些不是?
【问题讨论】:
【参考方案1】:没有通用的答案,因为它完全是特定于网站的。您可以尝试&失败,尝试&失败,直到获得所需参数的列表。或者,您可能会停止考虑它,使用真正的浏览器。
示例(使用selenium
和无头PhantomJS
浏览器):
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.PhantomJS()
driver.get("http://fplstatistics.co.uk/Home/Events")
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.ID, "myDataTable")))
for title in driver.find_elements_by_css_selector("div[style*=underline]"):
print(title.text)
打印:
Player Price Changes
Player Status Changes
【讨论】:
我发现唯一需要的参数是iDisplayLength
,但我还有一个问题。假设我想获得 10 月 5 日所做的所有更改,例如,我可以将 iDisplayLength
设置为 30,所以我保证(我不会在 1 天内进行超过 30 次更改,所以这不是真的一个保证,但实际上是)它包括了 10 月 5 日所做的所有更改,然后过滤掉那些没有的更改。但是,我将如何获取在当前日期进行的更新?有什么想法吗?以上是关于您如何知道 XHR 请求需要哪些参数?的主要内容,如果未能解决你的问题,请参考以下文章