I'm trying to scrape this site: https://case.occ.ok.gov/ords/f?p=1004:203
The missing piece of the puzzle is figuring out how to "get" the p_request
parameter in the data payload prior to making the final request. This field comes up empty when looking at the "main" page, so cannot use that to pass through to my POST request.
The code below doesn't work because I have a blank p_request
parameter in the payload, although I know through testing with developer console that it will work if I am able to get the p_request
field.
# Query Main Site to Build Payload
url = 'https://case.occ.ok.gov/ords/f?p=1004:203'
r = requests.get(url)
soup = BeautifulSoup(r.text,'lxml')
# Get Cookie
cookies = {}
cookdat = r.cookies
cookies['ORA_WWV_APP_1004'] = cookdat.get('ORA_WWV_APP_1004')
cookies['X-Oracle-BMC-LBS-Route'] = cookdat.get('X-Oracle-BMC-LBS-Route')
# Create Payload
inputs = soup.select('input')
d_inputs = {i['id']:i.get('value','') for i in inputs}
data = [
('p_flow_id', '1004'),
('p_flow_step_id', '203'),
('p_instance', '%s'%d_inputs['pInstance']),
('p_debug', ''),
('p_request', ''),
('p_widget_name', 'worksheet'),
('p_widget_mod', 'PULL'),
('p_widget_action', ''),
('p_widget_num_return', '100000'),
('x01', '8980043036046866'),
('x02', '8985720770049096'),
('f01', 'R8980010866046866_column_search_current_column'),
('f01', 'R8980010866046866_search_field'),
('f01', 'R8980010866046866_row_select'),
('f02', ''),
('f02', ''),
('f02', '50'),
('p_json', '{"pageItems":{"itemsToSubmit":[{"n":"P203_LASTNAME","v":"%s"},{"n":"P203_FIRSTNAME","v":""},{"n":"P203_SEARCH_CRITERIA","v":"1"}],"protected":"%s","rowVersion":"","formRegionChecksums":[]},"salt":"%s"}'%(letter,d_inputs['pPageItemsProtected'],d_inputs['pSalt'])),
]
# POST request retrieve data
r = requests.post('https://case.occ.ok.gov/ords/wwv_flow.ajax', cookies=cookies, data=data)
print(r.text)
In developer console, I see this field appears when making the type of submission I want, even though it is blank in the main page:
How do I "retrieve" this field, which is necessary for the request to work?
from Python Requests: How to get value of Blank Hidden Input
No comments:
Post a Comment