파이썬으로 json,post 형식의 홈페이지를 파싱하고 싶습니다.
조회수 2763회
파이썬으로 학교 홈페이지의 수강 편람 페이지를 파싱하고 싶습니다. 소스 코드의 url은 수강편람 URL인 https://e-onestop.pusan.ac.kr/menu/class/C03/C03001?menuId=2000030301&rMenu=03 이 아니라 '검색' 버튼을 눌렀을 시, 크롬의 F12 개발자 모드에서 network 항목에서 나오는 requst url로 하였습니다.
import urllib2
import json
import urllib
import requests
from BeautifulSoup import BeautifulSoup
url = "https://e-onestop.pusan.ac.kr/middleware/curriculum/college/CollegeAssignInfoSearch"
payload = {
'pName': ['YEAR', 'TERM', 'DEPTCD', 'CULTCD', 'GUBUN'],
'pValue': ['2017', '10', '480000', '', '1']
}
response = requests.post(url, params=payload)
print response.text
import되어있는 라이브러리들의 기본 post 방법으로는 테스트 해보았지만 저가 했을 시 모두 검색 버튼을 눌렀을 시 추가되거나 변경되어 나오는 부분이 파싱한 html소스코드에 없었습니다. 유동적인 부분만 받아오지 못하는 것을 보니 정상동작을 하지 않을 것 같은데 무엇이 빠져있는지 몰라 여기에 글을 쓰게 되었습니다.
혹시 도움을 주실 수 있는 분이 계신다면 조그만한것이라도 감사하니 답변 부탁드리겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
이 검색결과를 말씀하신거라면 url만 바꾸면 해결될 문제 같습니다.
# console: POST XHR mainurl = "https://e-onestop.pusan.ac.kr/menu/class/C03/C03001?menuId=2000030301&rMenu=03" suburl = "/middleware/curriculum/college/CollegeAssignInfoSearch" url = mainurl+suburl payload = { 'pName': ['YEAR', 'TERM', 'DEPTCD', 'CULTCD', 'GUBUN'], 'pValue': ['2017', '10', '11665', '', '5'] } response = requests.post(url, params=payload) print response.text
mainurl
은 학부 수강편람 url이고, post를 하는 위치는suburl
입니다.payload
는 둘을 합친 주소로 보냈습니다. 저는 파이어폭스 유저라서 개발자도구에 console을 보고 url이나 payload를 알아냈습니다.-
(•́ ✖ •̀)
알 수 없는 사용자
- 답변 정말 감사합니다. 그런데 파이썬에서 저가 위 코드를 실행시켰을 시, 저는 교과목에 대한 html 소스코드가 파이썬 결과에 출력되지 않습니다. 혹시 확인 가능할까요? 알 수 없는 사용자 2017.2.3 10:22
-
댓글 입력