저는 방금 파이썬에 대한 소개 과정을 마치고 약간의 프로젝트를 진행하고 있습니다. 목표는 단순히 웹 사이트에서 데이터를 추출하는 것입니다. 요청 라이브러리가 어떻게 작동하는지 배우려고하기 때문에 Selenium 및 Mechanize와 같은 라이브러리 사용을 피할 것입니다. 아래는 제 코드입니다.Python에 게시
s = requests.Session()
url = 'https://services2.hdb.gov.sg/webapp/BB33RTIS/BB33SSearchWidget'
data = {'FLAT_TYPE':'03',
'NME_NEWTOWN':'AMK+++++Ang+Mo+Kio',
'NME_STREET':'',
'NUM_BLK_FROM':'',
'NUM_BLK_TO':'',
'dteRange':'12',
'DTE_APPROVAL_FROM':'Dec+2015',
'DTE_APPROVAL_TO':'Dec+2017+',
'AMT_RESALE_PRICE_FROM':'',
'AMT_RESALE_PRICE_TO':'',
'Process':'continue',
'null':'null'
}
userAgent = {'User-Agent':'Mozilla/5.0','Referer':'https://services2.hdb.gov.sg/webapp/BB33RTIS/BB33PReslTrans.jsp'}
page = s.post(url,data=data,headers=userAgent).content
print(page)
s.close()
하지만이 대신 폼에 대한 코드를 제공하는 것 같습니다. 이 결과는 데이터를 포함하지 않아도 변경되지 않으므로 데이터가 올바르게 게시되지 않는다고 가정합니다. 검사 할 때 페이지에 쿼리 문자열 매개 변수가 없지만 대신 '양식 데이터'라는 것이 있는지 확인합니다. 이 매개 변수를 게시하는 방법을 잘 모르겠습니다. 누구든지 나를 올바른 방향으로 인도 할 수있을 정도로 친절한가요?
Chrome/Firefox에서 DevTool을 사용하면 브라우저에서 페이지를 사용할 때 브라우저별로 요청을 볼 수 있습니다. 어쩌면 양식이나 쿠키에 다른 헤더 나 숨겨진 필드가 필요하거나 쿠키 또는 시간/타임 스탬프를 사용하는 다른 요청에서 일부 필드가 다른 값으로 채워지는 경우 일 수 있습니다. – furas
세션을 사용하면 모든 요청에서 값을 변경할 수있는 숨겨진 필드의 첫 번째 쿠키 (세션 ID)와 값을 페이지에서 가져올 수 있습니다. – furas