수강이 제한됩니다.
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
코딩을 잘 따라 한 것 같은데 오류가 발생하는 것 같습니다
강사님 쫓아서 코딩을 하는데 이부분에서 오류가 생기는 것 같거든요 계속 지우고 다시 타이핑을 하고 해봤는데 강사님과 같은 결과값이 나오질 않습니다. 혹시 어느 부분이 잘 못 되었을지 보이신다면 알려주시면 감사하겠습니다. 다음으로 넘어가질 못하고 있습니다 ㅠㅠ
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
scrapy를 jupyter 환경에서 할 수 있나요
안녕하세요, 강사님. 좋은강의 감사드립니다. 우선 scrapy를 보면 관련 .py를 editor(sublime?)에서 수정을 하고, terminal에서 scrayp crawl ~~ 등으로 실행을 하는데요, 파이썬코드가 작동되다가, 어떤조건에서 scrapy에게 크롤링을 시킨다거나 등등을 하고자 하는데... 이럴때는 아무래도 jupyter 에서 위 terminal에서 했던 행동들이 가능해야 할 것같은데 scrapy를 jupyter(terminal이 아닌 editor)에서 작동시킬 수 있나요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
[실전 크롤링: scrapy 크롤링 팁] 질문있습니다.
안녕하세요, 강사님. 좋은 강의 감사드립니다. 제목에 나와있는 강좌에서 settings.py의 FEED_EXPORT_FIELDS 및 CONCURRENT_REQUESTS 를 배웠는데요 그 project file에서 여러 spider_name.py가 있을 수 있는데, 그 여러 spider_name.py에 대해 위 2가지를 다르게 가고싶다면 어떻게해야하나요? 혹시 하나의 project file은 다르게 못가나요? (예를들면 spiders 파일 하위에 있는 spider_name_1.py와 spider_name_2.py의 FIELDS 순서를 다르게 하고싶다면, 어떻게 처리를 해야할까요? settings.py는 모든 spider_name.py에 동일하게 적용될 것 같아서요!) 미리 감사드립니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
[실전 크롤링: 지마켓 크롤링하며, scrapy 실전 활용법 익히기1] 5분50초쯤 질문
안녕하세요, 강사님. 항상 좋은강의에 감사드립니다. 제목과 같은 위치에서 해주신 설명이 1) G마켓 카테고리의 url을 다 spider_name.py의 spider_nameSpider class에서 클래스변수인 start_urls(리스트)에 복사붙여넣기하면 그 url이 바뀔경우 유효하지 않으므로 2) G마켓 ALL카테고리(default)에서 카테고리들을 다 css selector로 찾아가자 라고 말씀을 해주셨습니다. 그러면 url이 바뀌더라도, 바뀐 url을 css selector를 통해 잘 찾아갈 것으로 이해가 됩니다. 그런데 제가 이런 부분에 잘 모르다보니까... 반대로는 css selector가 바뀐다면 못찾아가는 상황이 나오지 않을까? 걱정됩니다. 일반적으로 css selector는 url 같은것보다 더 안바뀌니까, 상대적으로 변동 가능성이 적다고 보는것인가요? (사실 이강의 및 이 앞의 강의에서도 url을 간 후 css selector로 찾아가는데, 제가 홈페이지를 어떻게 만드는지 전혀 모르다 보니까... 극단적으로 만든사람이 css selector를 바꿔벌니다면 코드가 작동하지않은지? 에 대한 궁금증이 있었습니다.) 더 나아가... 홈페이지를 만드는 입장에서 굳이 크롤링하는사람들을 배려해주진 않을것 같지만 OpenAPI 같은경우는 어떤게 어떤거다~ 등의 설명이 있는데, 크롤링을 하는 입장에서는 기존대비 변경된것들이 이런게 있으니 유의하세요~ 라고 따로 안내같은건 없겠죠? 관련하여 답변주시면 큰 도움이 될 것 같습니다!
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
[강력/최신 크롤링 기술: Scrapy 로 지마켓 크롤링하기1] 관련 질문
안녕하세요, 강사님. 우선 좋은 강의 감사드립니다. 컴퓨터쪽 전공이 아닌 저도 잘 따라가면 원하는걸 할 수 있도록 정말 강의 내용이 좋습니다. 강의를 듣다가 몇몇 질문들이 좀 생겨서 한번 문의를 드리고자 합니다. 관련 질문들은 제목에 기재한 부분에서 생긴 궁금증입니다. 1. from ecommerce.items import EcommerceItem 관련, 현재 .py에서 ecommerce.items는 상위폴더인데, 따로 표기가 없어도 상위폴더를 찾아가나요? 하위폴더와 이름이 겹치면 어떻게되나요...? 하위폴더가 우선권이 있는지 등등 궁금합니다! 2. items.py에서 클래스변수에 name = scrapy.Field()를 선언하고, spider_name.py for문에서 그 클래스의 instance를 만들고, 그 instance에서 그 클래스변수를 마치 딕셔너리처럼 찾아가는데... 사실 제가 배운 기초개념에서는 조금 와닿지가 않는데... 그냥 scrapy.Field()라는 것을 이용해 name을 만들었고 그것은 딕셔너리처럼 instance에서 찾아갈수 있도록 기능이 구현되어있다~ 수준으로만 이해하면 될까요? 3. name이라는 object에 이제 값들을 넣을때(spider_name.py에서) for문을 돌리고, 각 iteration마다 instance를 만들고 딕셔너리처럼 찾아가서 값을 넣어주고 yield를 하는데요... 파이썬기초자로서 예를들면 리스트는 append로 값을 추가해라~ 이런식으로 배웠는데... 이 경우가 익숙치 않는데 추가적인 이해를 할만한 자료가 있을까요? 아니면... 사실 그냥 쓰는 입장에서는 for문내에서 instance만들고 instance[name] = 원하는값넣고 yield instance로 통째로 모듈처럼 그냥 쓰기만하면 될까요? 4. 아직 뒷강의는 못들었지만 (혹시 뒷강의에서 나올까봐^^;;) scrapy가 동적 웹크롤링이 가능한가요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
xml을 parsing할때 <을 < 로 인식합니다.
안녕하세요, 강사님. requests로 url을 가져오고, BeautifulSoup으로 그것의 content를 html.parser로 parsing하면, 결과를 print하면 < 을 <로 인식합니다. 몇몇 <, >, ... 을 저런식으로 인식해서 그것을 고치려고 하는데 잘 안되네요 이럴땐 어떻게 해야하나요? 참고로 이전강의인 뷰티풀숩을 듣다가, 이어서 이 강의를 들으며 생긴 질문이라서 문의드립니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
pipelines.py에서 process_item내에서 print문이 작동을 하지 않네요 ㅠ
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
PhantomJS 문의
안녕하세요, 강사님. selenium을 배우고, 자연스럽게 headless를 배우다보니 PhantomJS와 selenium의 크롬드라이버에서 속성만 바꾸는 Headless Chrome에 대해서 배웠습니다. 우선 좋은강의 감사합니다. 알려주신방법대로 PhantomJS를 다운하고, phantomjs.exe를 접근해서, driver=webdriver.PhantomJS(dir)을 하면, AttributeError가 발생합니다. 그 내용은 selenium.webdriver에 더이상 PhantomJS라는 module은 없다는 것입니다. 실제 dir(webdriver)를 봐도 PhantomJS는 보이지가 않네요... 말씀처럼 공홈(https://www.selenium.dev/documentation/getting_started/installing_browser_drivers/#phantomjs) 을 가도 PhantomJS는 unmaintained라고 나와는 있는데... 이시점(21년11월2일)에는 아예 module조차 없어보입니다. 이게 맞는지 문의드립니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
selenium 문의
안녕하세요, 강사님. selenium 사용법에서 find_element(s)_by_~~ 가 있다고 배웠습니다. 그 앞단계에서 driver.get(url) 까지는 진행이 되어 있을것이고요... 그러면 이 driver.get(url)을 한 결과는, 마치 requests.get(url)을 가지고 BeautifulSoup(requests.get(url).content, 'html.parser')를 통해 html에 대한 parsing 을 진행한 결과와 동일하다고 생각하면 되나요? 거기서도 이제 이어서 .find or .select 등을 사용해서 유사해 보여서 문의드립니다. (참고로 본 강의 전에, 강사님의 '파이썬입문과 크롤링기초 부트캠프' 부터 듣고 와서, 자연스럽게 연결이 되어서 문의드립니다.) 그리고 이어서 텍스트를 뽑아낼때... soup에서 .find or .select 한것은 .get_text() 로 뽑아내고, driver.get(url)에서 .find_element(s)_by_~~은 html이 head이면 .get_attribute('text'), body이면 .text 뽑아낸다고 보면되나요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
브라우저 제어해서 크롤링하기 - 처음강의 마지막부분 문의
안녕하세요, 강사님. 말씀해주신것처럼 driver = webdriver.Chrome(chromedriver)까지하면 크롬이 하나가 창이 뜨는데... 이때 주피터에서 출력창에 아래와 같은 warning이 뜹니다. warning이라 구현에는 문제가 없는 듯 보이지만 영 찝찝하네요 어떻게해결할까요? <ipython-input-15-1cda356225a9>:5: DeprecationWarning: executable_path has been deprecated, please pass in a Service object driver = webdriver.Chrome(chromedriver)
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
on error 해결 방법 질문
안녕하세요 알려주신대로 크롤링을 하고 있는데 위처럼 이미지가 없을 시 onerror가 되어 404 에러가 나타나는데 이때는 어떻게 처리하나요? 스크래피의 기술적인 해결방법이 있나요??
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
[팁] 윈도우 cmd 커맨드
윈도우 커맨드 : 기능 설명입니다. dir : ls - 디렉토리 내 파일 확인 cls : clear - CLI 화면 비움 del, rmdir : rm / rm -r 기능, 삭제이므로 굉장히 주의 필요 type : cat - 텍스트 형식 파일 cli 내 출력 cd , : pwd - 현재 경로 출력
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
[팁]Chrome User Agent 아는법
1. 크롬 실행 2. F12를 누르고 개발자 모드에 들어감 3. Elements / Console / Sources / Network >> 탭에 있는 것들 중 Console을 선택한다. 4. Console창 내부에 navigator.userAgent 를 입력하면 현재 사용 중인 환경 검색가능
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
실전 크롤링: 브라우저를 제어해서 트위터 사이트 로그인 하기 질문
안녕하세요. 선생님 선생님 강의를 따라하며 정말 잘 듣고 있습니다. 실전 크롤링의 트위터 사이트 로그인 강의를 따라하다 질문이 있어서 이 곳에 글을 올립니다. 선생님께서 강의를 만드셨을 때의 트위터 사이트와 현재의 트위터 사이트가 다르게 바뀌었습니다. 선생님께서 올려주신 새소식의 공지사항을 읽어보고 로그인 및 크롤링을 다시 시도를 해보았지만 잘 되지 않았습니다. 선생님께서 가르쳐 주신 방법으로 driver.find_element_by_name 으로 "username"과 "password"를 입력하려고 시도하였지만 이것도 잘 되지 않아 어떻게 해결 할 수 있을지 모르겠어서 질문을 드립니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
동영상 강의 만드실 때 사용한 툴을 알려주실 수 있을까요?
강의를 수강하며 저도 자극을 받아, 제가 알고있는 지식을 가지고 강의를 만들어 보고 싶은데 사용하신 툴을 알 수 있을까요? 좋은 강의 감사드립니다. 윤정환 드림
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
CSS Selector 에서 질문이 있습니다.
해당 강의를 듣던 중에 title 하고 price 의 list 갯수가 차이가 있어서 확인 결과 BEST 200 개의 상품과 PLUS 20개의 상품의 Title 값이 동일한 구조로 HTML 이 짜여져 있었습니다. 하지만 BEST 200 개의 Price 와 PLUS 20개의 Price 의 구조는 다르게 되어 있어서 저는 BEST 200 개의 상품만 가져오고 싶었습니다. BEST 200 개의 상품과 PLUS 20개의 상품의 차이점은 (title 한정) css selector 중에 ul 의 값이 차이가 있었는데, BEST 200 개에서 ul 에는 class 가 선언되어 있지 않았고, PLUS 20개의 상품에서는 class 가 선언되어 있었습니다. 저는 그래서 선언되어 있지 않는 것만 추출하고 싶은데 선언되어 있지 않은 것만 추출하는 방법은 무엇일까요? 많은 시도를 해보고 인터넷 검색해 봤지만 선언되어 있지 않는 것만 특정하는 방법을 찾을 수가 없었습니다.
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
pip install scrapy 오류
안녕하세요, 강사님. 정말 좋은 강의 덕분에 크롤링 기술을 열심히 익히는 중입니다. 오늘 scrapy 강의를 듣기 위해 cmd에서 pip install scrapy를 실행하였고, (Window 사용중입니다) 정상적으로 설치된 것처럼 보여 다음단계로 넘어가려고 하였으나 지정된 모듈이 없다며 오류가 뜹니다. 모듈이 제대로 설치된 것 같지 않아 처음에는 pip uninstall 후 재설치 하였으나 같은 오류가 발생하였고, 강사님께서 언급해주신 세 가지 pip 설치 후에도 같은 오류 발생, 마찬가지로 Visual Studio도 설치하였으나 같은 오류가 발생하였습니다. 오류를 해결하기 위하여 검색하였더니 python이 두 개가 설치되어 있는 경우 같은 오류가 발생할 수 있다고 하여 anaconda를 포함하여 python과 관련된 모든 프로그램 삭제 후 재설치 하였으나 역시 같은 오류가 발생하였습니다. 어떻게 해결해야할까요? ------------------ 이 글을 쓰고 혹시나해서 과거에 설치했던 pycharm을 실행해서 pycharm에 내장된 terminal에 실행했더니 정상실행되는 것 같습니다. 같은 경로로 표시되는데..... pycharm terminal에서는 되는데 기존 window terminal에서는 왜 안되는 걸까요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
셀레니움 실행불가
from selenium import webdriver from selenium.webdriver.common.keys import Keys chromedriver = 'C:/dev_python/Webdriver' driver = webdriver.Chrome(chromedriver) 이렇게 작성했는데 --------------------------------------------------------------------------- PermissionError Traceback (most recent call last) C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\common\service.py in start(self) 71 cmd.extend(self.command_line_args()) ---> 72 self.process = subprocess.Popen(cmd, env=self.env, 73 close_fds=platform.system() != 'Windows', C:\ProgramData\Anaconda3\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors, text) 857 --> 858 self._execute_child(args, executable, preexec_fn, close_fds, 859 pass_fds, cwd, env, C:\ProgramData\Anaconda3\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session) 1310 try: -> 1311 hp, ht, pid, tid = _winapi.CreateProcess(executable, args, 1312 # no special security PermissionError: [WinError 5] 액세스가 거부되었습니다 During handling of the above exception, another exception occurred: WebDriverException Traceback (most recent call last) <ipython-input-1-02e09ad0301c> in <module> 3 4 chromedriver = 'C:/dev_python/Webdriver' ----> 5 driver = webdriver.Chrome(chromedriver) C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\chrome\webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, keep_alive) 71 service_args=service_args, 72 log_path=service_log_path) ---> 73 self.service.start() 74 75 try: C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\common\service.py in start(self) 84 ) 85 elif err.errno == errno.EACCES: ---> 86 raise WebDriverException( 87 "'%s' executable may have wrong permissions. %s" % ( 88 os.path.basename(self.path), self.start_error_message) WebDriverException: Message: 'Webdriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home이런 오류가 뜨네요...원인이 뭘까요?
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
실전 크롤링: XPATH와 Selenium 활용해서 페이스북 로그인 하기 에서 질문이 있습니다.
11:24 를 보면 코드중에 email_id="//*[@id='email']"로 정의한 뒤 email_tag=WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, email_id))) 라는 코드가 있는데 WebDriverWait은 제가 이해하기로는 XPATH의 값이 email_id인것이 뜰 때 까지 10초동안은 기다릴 수 있게 하는 명령인것 같습니다. 이때 궁금한점이 이전강의에서는 클릭이나 키보드 입력 등을 활용할때 webdriver.ActionChains(driver).click(more botton).perform() 이런방식으로 동작했었는데 이제는 email_tag.click() 이런식으로 WebDriverWait~~~ 로 정의된 변수를 앞에 두는것을 보았습니다. 그런데 직관적으로는 email_id를 집어넣어야 할 것 같은데 왜 기다리라는 명령?에 관련되어 변수로 정의된 값을 앞에 넣어줘야지만 동작할까요? email_id를 넣어보니 동작하지 않더군요 ㅠㅠ
- 미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
언제 get_text()를 사용하고 또 언제 .text를 사용하나요?
안녕하세요 브라우저를 제어해서 크롤링하기 - Selenium 기본 사용법 익히기1 에서 13:22초에 질문이 하나 있습니다! 왜 어느때는 .get_text()를 사용하고 어느때는 .text를 사용하나요? html에서 텍스트를 추출할때는 get_text를 자주 썼는데 text는 어느떄 사용하는건지 궁금합니다