inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Python cơ bản và tạo nhiều ứng dụng tự động hóa khác nhau bằng cách sử dụng web crawling

Thực hành giao tiếp requests (Xử lý đăng nhập) Nâng cao (1) - Ruliweb, Inflearn

3-4-2 인프런 질문

Đã giải quyết

385

JaeYoung Yoo

1 câu hỏi đã được viết

0

안녕하세요,

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

업데이트 요청드립니다.

python 웹-크롤링

Câu trả lời 4

0

jangtaesan

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

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

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

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

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

 

[인프런 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

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

[루리웹 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

niceman

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

0

niceman

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

현재 예제에서 error 발생

0

370

3

유튜브 동영상 다운로드

0

1452

2

Atom 에디터 관련

0

339

1

위시켓 폼데이터

0

274

1

스케줄러 사용 관련 질문 드립니다

0

629

1

selenium 에러

0

429

1

Progress bar 쓰레드 관련

0

491

1

Install Package 관련 문의

0

330

1

tkinter 샘플 코드 실행 오류 건

0

1271

1

4-7-6 네이버 & 카카오 주식 정보 가져오기

0

381

1

네이버자동로그인_by_selenium

0

877

1

위시캣 로그인 처리 및 크롤링 질문

0

348

1

2-8-1 네이버이미지 크롤링 질문

1

607

3

li:nth-of-type 질문

0

352

2

에러가 뜨는데 잘 모르겠어요ㅠ

0

402

2

Install Packages 항목이 안보이는 이유가 뭘까요?

0

402

2

환경변수 Path 설정 방법

0

634

1

웹 브라우저 없는 스크랩핑 및 파싱 실습(1) - 인프런

0

337

1

웹 브라우저 없는 스크랩핑 및 파싱 실습(1) -git주소

0

480

3

download2-8-1. py질문

0

206

1

ip 차단 당하는 거 같은데 아무리 랜덤주고, sleep 줘도 안 되는데 다른 방법 더 있을까요??

0

646

1

인프런 환경이 바뀌어서 제나름대로 하는데

0

197

1

다시올려주신 예제파일로하는데

0

191

1

아직도 에러가뜨나보네요?

0

585

1