• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

3-4-2 인프런 질문

19.05.05 19:57 작성 조회수 145

0

안녕하세요,

3-4-2에서 인프런의 세션 가져오는 부분이 리뉴얼로 인해 변경된 거 같은데, 해당 실습을 할 수 가 없습니다.

업데이트 요청드립니다.

답변 4

·

답변을 작성해보세요.

0

jangtaesan님의 프로필

jangtaesan

2022.08.18

처음엔 변경된 사이트들 때문에 정말 힘들었었는데

시간이 지나면서 조금은 익숙되는 것 같습니다.

약간의 응용력이 생긴다고 봐야 할까요? ㅋ

기본 로직은 그대로 가져가고 변경된 영역을 고쳐보는 재미도 나름 있답니다.

이것이 결국은 다른 사이트들을 크롤링 할 때 필요한 내용이 아닐까 생각해봅니다.

 

[인프런 22년8월18일 확인]

from bs4 import BeautifulSoup
import requests                 # 로그인을 처리할 때 사용한 requests
import urllib.parse as rep
import urllib.request as urlreq # request로 이미지 파일을 다운로드 받는다.
import os

#  로그인 유저정보
LOGIN_INFO = {
    'email': "로그인 이메일주소",
    'password': "비밀번호"
}

with requests.Session() as s:
    login_req = s.post('https://www.inflearn.com/api/signin', data=LOGIN_INFO)
    if login_req.status_code == 200 and login_req.ok:
        post_one = s.get('https://www.inflearn.com/dashboard')
        post_one.raise_for_status() # 예외처리 발생시킴
        soup = BeautifulSoup(post_one.text, 'html.parser')
        badges = soup.select('div.box_content > div.media > div > figure > img')
        for i, z in enumerate(badges, 1):
            # print(z)
            fullFileName = os.path.join("Q:/startcoding/Inflearn/workspace/", str(i)+'.jpg')
            urlreq.urlretrieve(z['src'],fullFileName)

 

 

0

jangtaesan님의 프로필

jangtaesan

2022.08.18

혹시 필요하신 분이 있으실 것 같아 변경된 형태를 완성시킨 코드 올려봅니다.

[루리웹 22년8월17일 확인]

from bs4 import BeautifulSoup
import requests

#  로그인 유저정보
LOGIN_INFO = {
    'user_id': "아이디",
    'user_pw': "비밀번호"
}

with requests.Session() as s:
    login_req = s.post('https://user.ruliweb.com/member/login_proc', data=LOGIN_INFO)
    
    if login_req.status_code == 200 and login_req.ok:
        post_one = s.get('https://bbs.ruliweb.com/market/board/32/read/4839737?page=2')
        post_one.raise_for_status() # 예외처리
        soup = BeautifulSoup(post_one.text, 'html.parser')
        article = soup.select_one('.view_content.autolink').findAll('p')
        for i in article:
            if i.string is not None:
                print(i.string)

0

해당 예제파일 업데이트 되었습니다.

0

네 빠른 시일내에 업데이트 후 공지 드리겠습니다.