로그인이 필요한 사이트 파싱해오기

2018. 3. 14. 19:11Python-이론/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형태로 요청해야할 것이다.



결과