작성
·
241
0
import sysimport io
from bs4 import BeautifulSoup
import requests
import urllib.parse as rep
import urllib.request as req
import os
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
#로그인 유저정보
LOGIN_INFO = {
'user_id' : 'gulungse@gmail.com',
'user_pw' : 'rlawjdgh2358',
'user-submit' : rep.quote_plus('로그인'),
'user-cookie' : 1
}
#Session 생성 , with 구문안에서 유지
with requests.Session() as s:
login_req = s.post('https://www.inflearn.com/wp-login.php?redirect_to=https%3A%2F%2Fwww.inflearn.com%2F', data=LOGIN_INFO)
#HTML 소스확인
#print('login_req',login_req.text)
#Header 확인
#print('headers',login_req.headers)
if login_req.status_code == 200 and login_req.ok:
post_one = s.get('https://www.inflearn.com/members/gulungse/course/')
post_one.raise_for_status()
soup = BeautifulSoup(post_one.text, 'html.parser')
#print(soup.prettify())
course = soup.select("ul.course-list > li > a > img")
for i,z in enumerate(course,1):
print(z)
# fullFileName = os.path.join("/Users/jeongho/Documents/image_down",str(i)+'.jpg') # str(i) 는 넘버값이 정수로 넘어오기때문에 문자로 변환
# req.urlretrieve(z['src'],fullFileName)
저는 아직 인프런에서 뱃지가 없어서 신청한 강좌의 이미지를 가져오려고 했는데요.
신청한 강좌가 총4가지인데 이미지다운이 되질 않네요. ㅠ
셀렉트 선택자부분을 봐주실수 있나요?
처음에는 이미지부분을 크롬개발자도구에서 copy > copy selecltor 로 해서
나온값을 넣었더니 하나밖에 안되더라고요. 부탁드립니다.
아직도 이 부분이 어렵네요.
답변 4
0
0
안녕하세요 강사님
저도 질문하신분처럼 잘 안되는데요
ul#course-list > li > a > img 이렇게 수정을 하고 해도
안되네요
두가지 여쭈어보겠습니다
div class="course mycourse"
이처럼 div 클래스 선택자가 course와 mycourse 2개가 있는 경우는 어떻게
지정을 해야 하나요. 예)div.course or div.course.mycourse
어떻게 하는건지 이해가 안되는데 부탁좀 드립니다.
감사합니다
0
0
안녕하세요. 나르샤님
선택자 부분을 확인해보니 실행해보지는 않았지만, ul.course-list > li > a > img 이 부분이
class가 아니라 id로 되어 있는 것 같은데 그렇다면,
ul#course-list > li > a > img
이렇게 바꿔야 되는것같습니다.
또한 잘 안되실 경우에는 print 문을 이용해서 선택자 부분을 상위부터 하위로 출력해보시면서 찾으시면
쉽게 하실 수 있습니다.
선택자 부분은 학습이 많이 필요한 부분이라 PPT에 나와있는 온라인 CSS 선택자 학습 사이트를 방문하셔서
충분히 연습하시면 잘 만드실 수 있을거라 생각됩니다.
감사합니다.