xpath는 사이트를 만들때 개발자가 지정하는게 아니고 태그 위치, 속성 등에 따라서 만들어집니다. 규칙이 있는거죠. 예를 들자면, //*[@id='search-btn'] 이 xpath는 모든 요소에서 search-btn라는 이름의 id를 찾는 xpath입니다. 그리고 표현 방식도 한가지가 아닙니다. //*[contains(@id, 'search-btn')] 방금 xpath는 이렇게도 작성 가능합니다. 개발자도구에서 보여지는 태그는 지금 보고있는 순간의 태그입니다. 자바스크립트로 화면을 보여주는 웹페이지는 스크롤, 마우스 오버 등 으로 인해 화면을 구성하는 태그가 바뀔 수 있다는거죠. 예를 들어서, //*[@id="shortcutArea"]/ul/li[4]/a 이 xpath에서 li[4]
안녕하세요 항상 강의 잘 보고있습니다. 오늘도 작업하는데 속을 시원하게 긁어주면서 아주 쉬운 방법으로 해결했네요. 명강의입니다. 하나 작업하다가 막히는 부분이 있어서 질문드립니다. 해외몰 상품링크를 몇십개정도 for문을 돌려서 하나하나 열면서 크롤링을 하고 있는데 꼭 중간에 다 로드를 못하고 계속 읽고 있는 페이지가 있네요. 별도로 들어가보면 멀쩡한 링크인데말이죠. 그러다가 아래와 같은 오류메세지가 나오면서 프로그램이 종료되어버립니다. 어떤 이유이든 크롤링 도중에 로딩이 되지 않는 페이지를 10초정도 기다렸다가 못 읽어오면 그 페이지는 건너뛰던가 다시 그 페이지를 로딩하려는 시도를 하려면 어떤 코드를 짜봐야할까요? 구글링으로 implicitly_wait, wait~until 이런건 찾아봤지만 로딩이 될때까지 기다린다는 의미이지 로딩이 안 될경우에 대한 내용은 아닌 것 같네요ㅜㅜ 에러 메시지는 selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 300.000 입니다.
김플님. 항상 좋은 영상과 퀄리티좋은 강의 감사합니다! 덕분에 파이썬과 프로그래밍에 흥미와 재미가 생겼습니다 ^^ 한가지 질문을 드리고싶은데요..여기에 질문을 드려도 괜찮은건지 모르겠네요.. 제가 특정 입력필드(chat/input box 형태)에 수많은 string(약 15000자)을 넣고싶은데요. list index에 15000자를 넣어두고, 이것을 불러와 send keys를 활용해 입력하니 생각보다 오랜시간이 걸리더라구요. 메모장에 15000자를 ctrl c+v 하면 슥 복붙되듯이 빨랐으면 좋겠는데.. 혹시 효율적으로 빠르게 문자15000자를 넣을수있는 방법이 있을까요? 메모장에 15000자를 넣어두고, 자동화에 원하는 부분에 메모장을 열어 복사 붙여넣기 하는 방법이 있어보이기는하는데. 로컬을 통하지 않고 코딩의 로직만으로 해결할수 있는 방법이 있을까 궁금하여 질문드립니다. ^^ 질문의 답변 유무와 관계없이 다시한번 항상 감사합니다!!
안녕하세요. 너무 잘 보고 있습니다. 질문이 있는데 셀레니움으로 크롤링 프로그램을 만들고 있는데 검색하여 클릭한 뒤 나와있는 데이터를 긁어오는 방식을 쓰고 있습니다. 문제가 생긴 것이 검색을 하였는데 1가지가 나왔을 때는 div 첫번째 박스를 클릭하여 데이터를 가져오는 식으로 적용을 하다보니 3~4가지가 나왔을때도 첫번째 박스만 가져오는 문제가 생겼습니다. (제가 원하는건 세번째 박스에 있었죠) 검색어를 바탕으로 박스를 찾아서 자동으로 들어가게끔 프로그램을 짜고 싶은데 어떻게 구현해야 할 지 몰라서 댓글 남깁니다. 도와주신다면 정말 감사하겠습니다 ㅠ
강의들으면 신세계를 경험하고있는 초보입니다. 좀 다른 문의지만 이것저것 따라하고 응용해보다보니 네이버 블로그의 컨텐츠를 눌렀을때 새탭이열리면서 넘어가면 해당페이지를 driver.get_window_position(driver.window_handles[1]) 이걸로 잡아주고 클릭이나 명령어등을 실행하면 오류가 나면서 먹통이됩니다. 다른문제인가 하고 여러가지 시도해봐도 똑같아서 카페나 다른 사이트를 눌러서 새탭에서 실행하면 잘 작동하구요. 프로그램이 아닌 실제 블로그를 눌러서 들어가도 키보드(페이지업다운,홈,엔드키)등은 먹히질 않고 블로그내를 한번 클릭해야 키보드가 먹히더라구요. 그래서 프로그램상에 블로그를 클릭하는 기능을 추가해도 반응을 하지않습니다. 다른부분은 잘되는데 왜 블로그에서는 프로그램이 작동을 안할까요? 페이지만 넘겨오는게 아니라 다른부분도 넘겨와야 되는걸까요? 바쁘시겠지만 가르침부탁드립니다.ㅠㅠ
김플 스튜디오님 죄송한데 하나 물어봐도되나요? 이게 버튼을클릭하면 Alert창이 뜨고 Alert창이 한번 또는 두번 뜰때가있는데 문제가 Alert창을 driver.switch_to.alert.accept()로 한번 해결했을때 또 다시 한번더뜨는경우에는 랜덤적으로 나오다 보니까 그냥 팅겨버려요 방법이있을까요?
안녕하세요! 김플님 영상보고 파이썬 접하다가 신세계를 경험하고 있는 1인입니다 ㅎㅎ너무 감사드려요! 현재 제가 자주 이용하는 사이트의 자동 로그인을 해보려고 테스트 중인데 ~ 알려주신 selenium에서 webdriver을 실행해서 응용 중입니다! 그런데 ERROR:browser_switcher_service.cc(238)] XXX Init() 와 Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed. 오류가 발생하네요 ㅠㅠ 알려주신대로! 구글에 검색해서 찾아보니까 크롬 드라이버랑 버전이 안맞다고 되어있는데, 이부분 해결방안 없을까요!? 다운업그레이도 해보려고 했고, 파이어폭스로도 해보려고 시도는 해봤는데 이부분이 너무 어렵네요 ㅠㅠ 요청만 드려 죄송하고 항상 감사합니다!
좋은 영상올려주셔서 감사합니다 그런데 제가 만들다 보면 class 이름을 찾고 클릭할때 계속 리스트는 클릭할 수 없다 라고해서 혹시 고칠방법이있나요? from selenium import webdriver import time driver = webdriver.Chrome() driver.get('naver.com') driver.find_elements_by_class_name('an_a.mn_comic').click() AttributeError: 'list' object has no attribute 'click'로 에러가 나네요..
실습으로 끝장내는 파이썬 웹 크롤링과 웹 페이지 자동화 강의 : inf.run/jX3V
미쳤다 독심술사신가? 물어보고 싶은데 강의로 다 있음ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
코드 하나하나 설명해 주시니까 도움이 많이 됩니다. 감사합니다.
저도 감사합니다~
이분은 정말 천재임!
와 정말 감사합니다. 덕분에 많이 배우고 가요!
감사합니다!
저는 여러명이 사용할거라 로그인화면을 어떻게 해결해야하나 싶었는데 어떤분이 좋은질문을 해주셨군요! 쉽게 해결되었습니다 감사합니다
코로나를 피하여 잘 지내고 계시죠? 건강을 지키셔야 멋진 강의도 계속 올리실수 있으니 건강 잘 챙기세요
이 강의를 보면서 답답한거 하나 해결하게 되네요 ㅎㅎ 감사드립니다
저는 여러가지로 녹화하기는 안좋은 상황이지만 별탈없이 잘 지내고 있습니다! 야홍님도 무탈하시길 바라겠습니다. 감사합니다~
유익한 강의 감사합니다😄😄
굿입니다~~!!!
감사합니다~
안녕하세요 강의 잘보고 있습니다. 혹시 selenium을 사용해서 table내 td에 있는 버튼, 링크를 클릭하는 방법이 있을까요? xpath를 사용해봤는데 timeout애러가 발생하네요. 아니면 혹시 유료 강의에 위 내용이 포함되어있나요?
table이라고 다른 방법이 있는 게 아닙니다. 어떤 태그라도 그 요소가 갖고 있는 아이디나 클래스 및 기타 속성을 사용하거나, 그 요소가 어느 위치에 있는지 분석하여 찾는데 코드가 제대로 작동을 안 한다면 html 분석을 잘못했거나 파이썬 코드가 잘못된 것입니다.
@@kimfl 답변 감사합니다. 혹시 개발자툴에서 가져온 xpath가 크롤링이나 보안방지를위해 속임수용?으로 해놀 가능성도 있는건가요?
xpath는 사이트를 만들때 개발자가 지정하는게 아니고 태그 위치, 속성 등에 따라서 만들어집니다. 규칙이 있는거죠.
예를 들자면, //*[@id='search-btn'] 이 xpath는 모든 요소에서 search-btn라는 이름의 id를 찾는 xpath입니다.
그리고 표현 방식도 한가지가 아닙니다. //*[contains(@id, 'search-btn')] 방금 xpath는 이렇게도 작성 가능합니다.
개발자도구에서 보여지는 태그는 지금 보고있는 순간의 태그입니다. 자바스크립트로 화면을 보여주는 웹페이지는 스크롤, 마우스 오버 등 으로 인해 화면을 구성하는 태그가 바뀔 수 있다는거죠.
예를 들어서,
//*[@id="shortcutArea"]/ul/li[4]/a
이 xpath에서 li[4]
@@kimfl 덕분에 많이 배웠습니다. 친절히 답변해주셔서 감사합니다.
사랑합니다
감사합니다
안녕하세요 항상 강의 잘 보고있습니다. 오늘도 작업하는데 속을 시원하게 긁어주면서 아주 쉬운 방법으로 해결했네요. 명강의입니다. 하나 작업하다가 막히는 부분이 있어서 질문드립니다. 해외몰 상품링크를 몇십개정도 for문을 돌려서 하나하나 열면서 크롤링을 하고 있는데 꼭 중간에 다 로드를 못하고 계속 읽고 있는 페이지가 있네요. 별도로 들어가보면 멀쩡한 링크인데말이죠. 그러다가 아래와 같은 오류메세지가 나오면서 프로그램이 종료되어버립니다. 어떤 이유이든 크롤링 도중에 로딩이 되지 않는 페이지를 10초정도 기다렸다가 못 읽어오면 그 페이지는 건너뛰던가 다시 그 페이지를 로딩하려는 시도를 하려면 어떤 코드를 짜봐야할까요? 구글링으로 implicitly_wait, wait~until 이런건 찾아봤지만 로딩이 될때까지 기다린다는 의미이지 로딩이 안 될경우에 대한 내용은 아닌 것 같네요ㅜㅜ 에러 메시지는 selenium.common.exceptions.TimeoutException: Message: timeout: Timed out receiving message from renderer: 300.000 입니다.
초보자를 위한 강의 서치중인데요..사용하시는 프로그램이 어떤프로그램인지 알 수 있을까요? 처음부터 따라하고 싶은데
김플님. 항상 좋은 영상과 퀄리티좋은 강의 감사합니다!
덕분에 파이썬과 프로그래밍에 흥미와 재미가 생겼습니다 ^^
한가지 질문을 드리고싶은데요..여기에 질문을 드려도 괜찮은건지 모르겠네요..
제가 특정 입력필드(chat/input box 형태)에
수많은 string(약 15000자)을 넣고싶은데요. list index에 15000자를 넣어두고, 이것을 불러와 send keys를 활용해 입력하니
생각보다 오랜시간이 걸리더라구요. 메모장에 15000자를 ctrl c+v 하면 슥 복붙되듯이 빨랐으면 좋겠는데..
혹시 효율적으로 빠르게 문자15000자를 넣을수있는 방법이 있을까요?
메모장에 15000자를 넣어두고, 자동화에 원하는 부분에 메모장을 열어 복사 붙여넣기 하는 방법이 있어보이기는하는데. 로컬을 통하지 않고 코딩의 로직만으로 해결할수 있는 방법이 있을까 궁금하여 질문드립니다. ^^
질문의 답변 유무와 관계없이 다시한번 항상 감사합니다!!
감사합니다 🙏
혹시 공동인증서 자동화도 가능한 부분일까요? 마우스로 클릭하여 비밀번호를 입력하는 방식인데 매번 번호 위치가 달라져서... 고수분들은 이것도 자동화 가능하게 코드를 짤수 있으신지 궁금하네요..
제가 pc 공동 인증서를 사용해 본 지가 오래되어서 어떤 식으로 되어 있는지 기억이 안 나는데 공동 인증서가 셀레니움으로 조작이 가능한 건지를 모르겠습니다.
물론 다른 방법으로라도 자동화는 가능할 거라고 생각합니다.
김플님 4분 35초에 오른쪽에 소스보기를 크롬 화면에서 반쪽 여는것은 어떻게 하는지 좀 가르쳐주세요. .^^
안녕하세요 강좌 잘 보고있습니다. 다름이 아니라 물건을 선착을순으로 구매할 때에 그런걸 만들려면 셀레니엄으로도 가능한가요? 혹시 그렇지 않으면 어떤 방법으로해서 만들면 되는지 여쭈어봐도 될까요?
인터넷 쇼핑을 하는거라면 셀레니움으로 만들수 있겠죠.
안녕하세요. 너무 잘 보고 있습니다. 질문이 있는데 셀레니움으로 크롤링 프로그램을 만들고 있는데
검색하여 클릭한 뒤 나와있는 데이터를 긁어오는 방식을 쓰고 있습니다.
문제가 생긴 것이 검색을 하였는데 1가지가 나왔을 때는 div 첫번째 박스를 클릭하여 데이터를 가져오는 식으로 적용을 하다보니
3~4가지가 나왔을때도 첫번째 박스만 가져오는 문제가 생겼습니다. (제가 원하는건 세번째 박스에 있었죠)
검색어를 바탕으로 박스를 찾아서 자동으로 들어가게끔 프로그램을 짜고 싶은데 어떻게 구현해야 할 지 몰라서 댓글 남깁니다.
도와주신다면 정말 감사하겠습니다 ㅠ
강의들으면 신세계를 경험하고있는 초보입니다.
좀 다른 문의지만 이것저것 따라하고 응용해보다보니
네이버 블로그의 컨텐츠를 눌렀을때 새탭이열리면서 넘어가면 해당페이지를
driver.get_window_position(driver.window_handles[1]) 이걸로 잡아주고
클릭이나 명령어등을 실행하면 오류가 나면서 먹통이됩니다.
다른문제인가 하고 여러가지 시도해봐도 똑같아서 카페나 다른 사이트를 눌러서 새탭에서 실행하면 잘 작동하구요.
프로그램이 아닌 실제 블로그를 눌러서 들어가도 키보드(페이지업다운,홈,엔드키)등은 먹히질 않고 블로그내를 한번 클릭해야 키보드가 먹히더라구요.
그래서 프로그램상에 블로그를 클릭하는 기능을 추가해도 반응을 하지않습니다.
다른부분은 잘되는데 왜 블로그에서는 프로그램이 작동을 안할까요?
페이지만 넘겨오는게 아니라 다른부분도 넘겨와야 되는걸까요?
바쁘시겠지만 가르침부탁드립니다.ㅠㅠ
이건 저도 만들면서 확인해보지 않는 이상 이유를 알기 힘들 것 같습니다.
@@kimfl 네~답변감사합니다. 책이나 모든 자료들이 블로그들어가고 창닫는거까지만 있어서 진도나가기가 참 어렵네요..
앞으로도 좋은컨텐츠 부탁드릴게요^^
감사합니다^^
유튜브 댓글추가 엘리먼트 선택이 안되는 이유를 알고 싶습니다.^^
html을 찾을떄 만약에 으로 묶여있다면 요소를 어떻게 찾을수있는건가요?? 의 name속성이 있으면 좋겠지만 없는경우도 종종 있더라구요... 이럴경우 css selector을 이용해서 요소안으로 들어가는것 외에는 방법이 없는건가요?
같은 요소를 찾더라도 방법이 여러가지인것처럼 도 마찬가지입니다.
김플 스튜디오님 죄송한데 하나 물어봐도되나요? 이게 버튼을클릭하면 Alert창이 뜨고 Alert창이 한번 또는 두번 뜰때가있는데 문제가 Alert창을 driver.switch_to.alert.accept()로 한번 해결했을때 또 다시 한번더뜨는경우에는 랜덤적으로 나오다 보니까 그냥 팅겨버려요 방법이있을까요?
try, except를 사용해서 예외처리를 하면 됩니다.
엣지로도 바꿀수있나요?
네-셀레니움은 엣지로도 사용 가능합니다.
앱에서도 실행 할 수 있는 건가요?
모바일 앱 자동화에는 보통 Appium을 많이 사용합니다.
대박... input 정말 생각을 못했다능;; 어이가 없내...
안녕하세요! 김플님 영상보고 파이썬 접하다가 신세계를 경험하고 있는 1인입니다 ㅎㅎ너무 감사드려요!
현재 제가 자주 이용하는 사이트의 자동 로그인을 해보려고 테스트 중인데 ~ 알려주신 selenium에서 webdriver을 실행해서 응용 중입니다!
그런데 ERROR:browser_switcher_service.cc(238)] XXX Init() 와 Bluetooth: bluetooth_adapter_winrt.cc:1055 Getting Default Adapter failed.
오류가 발생하네요 ㅠㅠ 알려주신대로! 구글에 검색해서 찾아보니까 크롬 드라이버랑 버전이 안맞다고 되어있는데, 이부분 해결방안 없을까요!?
다운업그레이도 해보려고 했고, 파이어폭스로도 해보려고 시도는 해봤는데 이부분이 너무 어렵네요 ㅠㅠ 요청만 드려 죄송하고 항상 감사합니다!
저 메세지가 크롬드라이버와 크롬의 버전문제인지는 모르겠습니다만..
크롬과 버전을 맞추는건 크롬드라이버 홈페이지에 크롬 x.x버전은 크롬드라이버 x.x버전을 받아라 이런식으로 안내가 되어있습니다. 크롬 버전을 확인한다음 맞춰서 받으시면 됩니다.
@@kimfl 아!!ㅎㅎ네 감사합니다! 우선 작동은 해서 더 만져보구 해결방안 찾아볼게요 ㅎㅎ
좋은 영상올려주셔서 감사합니다
그런데 제가 만들다 보면 class 이름을 찾고 클릭할때 계속 리스트는 클릭할 수 없다 라고해서 혹시 고칠방법이있나요?
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('naver.com')
driver.find_elements_by_class_name('an_a.mn_comic').click()
AttributeError: 'list' object has no attribute 'click'로 에러가 나네요..
seleinum은 설치했습니다
네이버 열리고 오류가 걸리네요
elements로 해서 그렇네요 해결했습니다 ^-^