2016. 6. 22.

파이썬3 로그인하기

Packtpub 에서 매일 무료로 책을 배포하고 있습니다. 이를 매일 받아오기가 갑자기 귀찮아져서 파이썬이라는 언어를 사용해서 간단하게 만들어 보고 싶었습니다. 웹상에 소스들에 대한 정보가 많이 있다는 것을 알고 python3로 작성을 해 보고 싶었습니다. 여러가지 소스들을 봤는데, 이상하게 저는 잘 작동이 되지 않더라구요. github.com 에 올라와 있는 소스는 장황하게 설명이 되어 있어서 입문자인 저에게는 버거웠습니다. 그래서 만들어 보았습니다.

1.무료책을 구매하는 링크를 가져오기

header = {'User-Agent': 'Mozilla/5.0'}
r = requests.post(authentication_url, headers=header)
r.encoding = 'utf-8'
bs4_packt = BeautifulSoup(r.text, "html.parser")
getBook_url = base_url + str(bs4_packt.find('a', attrs={'class': 'twelve-days-claim'})['href'])


getBook_url 로 구매하는 책의 링크를 받아온다.

2. Cookie를 저장하기

cj = http.cookiejar.LWPCookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
urllib.request.install_opener(opener)


http.cookiejar 를 이용해서 cookie 저장소를 만들고, opener 를 통해서 쿠키를 자유롭게 이용하면서 이동을 할 수가 있습니다.

3. 정보입력 하기

value = {
        'op': 'Login',
        'email': email,
        'password': password,
        'form_id':'packt_user_login_form'
    }
data = urllib.parse.urlencode(value).encode("utf-8")


로그인 할 데이터를 relencode(value).encode(“utf-8”) 를 합니다. 다른 블로그들을 찾아보니 python3 에서는 utf-8 로 encode 를 해서 이용해야 한다고 합니다. 아직 확인할 방법이 없습니다.

4. 로그인하기

conn = opener.open(authentication_url, data)

opener func(url, data) 를 이용해서 로그인을 할 수 있습니다.

5. 로그인 한 상태로 다른 GET 방식으로 이동하기

conn = opener.open(getBook_url)

같은 명령어로 주소만 적어주면 알아서 GET 방식으로 이동합니다.

댓글 없음:

댓글 쓰기