计算在带有python请求的网站上的POST查询中发送的所有数据

2024-09-29 19:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在用python研究POST/GET查询,并给出了一个从公共站点(在本例中是SEDI,Canadian insider registry)抓取数据的实际示例。这与Python3.5和请求2.11.1有关。你知道吗

因此,可以在下一页输入公司内部人员姓名或其他信息:

https://www.sedi.ca/sedi/SVTSelectSediInsider?menukey=15.01.00&locale=en_CA&gx_session=0

打开此页时,将向客户端发送两个包含以下内容的Cookie:

BIGipServerP_R1_sedi_443=rd1o00000000000000000000ffffac137017o443; path=/; domain=www.sedi.ca; Secure

JSESSIONID=0000RZjmIFv03gXCARzCPtvm2iC:188nefms0; path=/; domain=www.sedi.ca; Secure; HttpOnly

让我们假设我已经知道内幕代码,例如本例中的RBIRCHA004。我创建了一个新会话:

mySession = requests.session()

并根据我在浏览器中使用网站时发送的内容填充所有表单字段:

payload = {
  "pageName" : "https://www.sedi.ca/sedi/com/sedi/jsp/insider/selectSediInsider.jsp",
  "menukey" : "15.01.00",
  "locale" : "en_CA",
  "jspSynchronizerToken" : "yS7BQBPbm7w3dJqhbi_mGk_1477920341973",
  "PUBLIC_SEARCH" : "setFlag",
  "INSIDER_STATE" : "1",
  "INSIDER_KEY" : "RBIRCHA004",
  "INSIDER_LNAME" : "",
  "INSIDER_FAMILY_NAME_SEARCH_TYPE" : "2",
  "INSIDER_FNAME" : "",
  "INSIDER_GIVEN_NAME_SEARCH_TYPE" : "2",
  "INS_CORP_NAME" : "",
  "INSIDER_COMPANY_NAME_SEARCH_TYPE" : "2",
  "ISSH_NIPDB" : "",
  "issuer_name" : "",
  "ISSUER_NAME_SEARCH_TYPE" : "2",
  "Search" : "Search"
}

我没有找到jspSynchroniserToken的值来自哪里。你知道吗

我还浏览了源代码,以便找到可能对查询有影响的js代码。在/sedi/images/functions.js中有一些功能,但只是一个用于验证表单和检查用户是否多次按下submit的函数。你知道吗

所以-当我用url(https://www.sedi.ca/sedi/SVTSelectSediInsider?menukey=15.01.00&locale=en_CA)中的参数发送这个查询并像这样发布数据时:

mySession.request('POST', URL, data=payload)

我只得到相同的搜索页面-没有一个结果页面。你知道吗

我之所以尝试使用自动数据刮刀,是因为我的大学学习需要这些数据,但是手动获取这些数据非常繁琐,所以我尝试自动下载这些数据并将其存储在sqlite数据库中。你知道吗

我对POST/GET和js还不是很在行,但这是我到目前为止对这个网站的功能所学到的。你知道吗

有人能告诉我该找什么吗?我没有考虑到标题的某些内容吗?你知道吗

提前感谢您的帮助!你知道吗


Tags: 数据namehttpssearchwwwtypejspost

热门问题