我一直在用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还不是很在行,但这是我到目前为止对这个网站的功能所学到的。你知道吗
有人能告诉我该找什么吗?我没有考虑到标题的某些内容吗?你知道吗
提前感谢您的帮助!你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐