로그인이 필요한 사이트 파싱해오기
2018. 3. 14. 19:11ㆍPython-이론/python-인공지능2
로그인을 통해 파싱해오기
결과
오늘은 로그인을 통해서 파싱을 해보겠습니다. 로그인과 관련된 정보는 크롬 관리자탭에서 확인 할 수 있습니다.
우선 관리자 도구에 들어가서 네트워크 탭에 들어갑니다. 그리고 과거의 파일까지 볼 수 있게 preserve log를 눌러 줍니다. 그러고 나서 로그인 후 생긴 파일을 자세히 보면
이런식으로 아이디와 비밀번호 등을 볼 수 있r고 post형식과 각종 요청사항들을 볼 수 있습니다. 저는 저사이트가 아닌 티스토리 로그인 후 방문객 수를 파싱해와 보겠습니다.
import requests session = requests.session() loginInfo = { "redirectUrl":"http://hoony-gunputer.tistory.com/", "loginId" : "your_id", "password" : "your_password", "rememberLoginId":"1", "fp":"de5546d4ee680bc028de0e1112dfb6e3" } headers = { "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", "Accept-Language":"ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7", "Origin":"https://www.tistory.com", "Referer":"https://www.tistory.com/auth/login", "Cache-Control":"max-age=0", "Upgrade-Insecure-Requests":"1", "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36" } url_login = "https://www.tistory.com/auth/login" res = session.post(url_login, data=loginInfo, headers =headers) url_myPage = "http://hoony-gunputer.tistory.com/manage/dashboard/visitors.json" res = session.get(url_myPage,headers=headers) total = res.json() print(total) total = total.get("total") print("전체 방문객:",total)
처음에 헤더를 추가 안하고 하니깐 계속 오류가 발생해서 여러분이 하실 때는 헤더를 추가해주길 바란다. 그리고 관리자 도구 html파일에서 추가되어 있지 않는 내용은 다른 파일에서 아마도 json형태로 요청해야할 것이다.
결과
'Python-이론 > python-인공지능2' 카테고리의 다른 글
web api를 사용하여 데이터 추출하기 (0) | 2018.03.30 |
---|---|
ubuntu에서 selenium과 Phantomjs를 사용해서 스크래핑해오기 (0) | 2018.03.29 |
css selector를 통해서 스크래핑해오기 (0) | 2018.03.09 |
python으로 데이터 다운받기 - BeautifulSoup로 스크레이핑하기 (0) | 2018.03.08 |
python으로 데이터 다운로드 하기 - urllib 모듈 이용하기 (2) | 2018.03.07 |