在以下链接(具有默认选项)中提交表单后,我试图检索页面:https://selfservice.pasadena.edu/prod/pw_psearch_sched.p_search
我意识到表单是post方法,所以我使用了requests模块来模拟post请求。
r = requests.post(URL, data=form_data).text
对于表单数据,我使用chrome开发工具提取了。
form_data = {
'TERM': '202070',
'TERM_DESC': 'Fall 2020',
'sel_subj': 'dummy',
'sel_day': 'dummy',
'sel_schd': 'dummy',
'sel_camp': 'dummy',
'sel_ism': 'dummy',
'sel_sess': 'dummy',
'sel_instr': 'dummy',
'sel_ptrm': 'dummy',
'sel_attrib': 'dummy',
'being_hh': '5',
'begin_mi': '0',
'begin_ap': 'a',
'end_hh': '11',
'end_mi': '0',
'end_ap': 'p',
'aa': 'N',
'bb': 'N',
'ee': 'N'
}
但是它一直给我404 Error
。
起初,我尝试使用selenium
模拟单击“提交”按钮,但速度太慢了。
任何帮助将不胜感激。
答案 0 :(得分:0)
有两个问题
表单发送到其他网址:https://selfservice.pasadena.edu/prod/pw_psearch_sched.p_listthislist
名称'begin_hh'
中的小错误-您有'being_hh'
工作代码
import requests
data = {
'TERM': '202070',
'TERM_DESC': 'Fall 2020',
'sel_subj': 'dummy',
'sel_day': 'dummy',
'sel_schd': 'dummy',
'sel_camp': 'dummy',
'sel_ism': 'dummy',
'sel_sess': 'dummy',
'sel_instr': 'dummy',
'sel_ptrm': 'dummy',
'sel_attrib': 'dummy',
'sel_crse': '',
'sel_crn': '',
'sel_title': '',
'begin_hh': '5',
'begin_mi': '0',
'begin_ap': 'a',
'end_hh': '11',
'end_mi': '0',
'end_ap': 'p',
'aa': 'N',
'bb': 'N',
'ee': 'N',
}
URL = 'https://selfservice.pasadena.edu/prod/pw_psearch_sched.p_listthislist'
r = requests.post(URL, data=data)
print(r.status_code)
#print(r.text)
顺便说一句:最初,表单会为某些字段发送两个值,并且会是
'sel_subj': ['dummy', '%'],
'sel_day': 'dummy',
'sel_schd': ['dummy', '%'],
'sel_camp': ['dummy', '%'],
'sel_ism': ['dummy', '%'],
'sel_sess': ['dummy', '%'],
'sel_instr': ['dummy', '%'],
'sel_ptrm': ['dummy', '%'],
'sel_attrib': ['dummy', '%'],
但是即使您发送一个值,页面也可以工作。
顺便说一句:在DevTool
中,您可以获得rpogram curl
的代码,随后您可以在页面https://curl.trillworks.com/中将其转换为Python代码