您如何知道XHR请求需要哪些参数?

时间:2015-10-05 17:47:56

标签: python web-scraping python-requests

我使用请求从http://fplstatistics.co.uk/Home/Events获取json文件,为此,我使用了典型的

response = requests.get(url, params=params, headers=headers)

这里params是一个大约35行的字典,我觉得这很大。您可以转到“网络”面板 - >来查看这些参数。 XHR - >标题 - >查询字符串参数。我想知道param字典是否确实需要包含所有查询字符串参数,如果它不是,那么你怎么知道需要哪些哪些是&n& #39;吨

1 个答案:

答案 0 :(得分:0)

没有通用答案,因为它完全取决于网站。您可以尝试& fail,尝试&失败,直到获得所需参数列表。或者,您可以通过使用真实的浏览器停止思考它。

示例(使用selenium和无头$(function () { $('#ballotForm').on('submit', function (e) { var isValid = $('#ballotForm').valid(); console.log(isValid); if (isValid) { e.preventDefault(); var data = $(this).serialize(); var url = $(this).attr('target'); $.post(url, data) .done(function (response, status, jqxhr) { $('#modal-container').on('show.bs.modal', function (event) { var modal = $(this); console.log(modal); modal.find('.modal-content').html(response); console.log(response); }); $('#modal-container').modal('show'); }) .fail(function (jqxhr, status, error) { }); } }); }); 浏览器):

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)