강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của goodybox370127
goodybox370127

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

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

Viết

·

364

0

안녕하세요,

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

업데이트 요청드립니다.

python웹-크롤링

Câu trả lời 4

0

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

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

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

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

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

 

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

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

[루리웹 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님의 프로필 이미지
niceman
Người chia sẻ kiến thức

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

0

niceman님의 프로필 이미지
niceman
Người chia sẻ kiến thức

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

Hình ảnh hồ sơ của goodybox370127
goodybox370127

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

Đặt câu hỏi