for i in r: print(i.select_one('.LC20lb.DKV0Md').txt) print(i.select_one('.iUh30.bc').txt) print() driver.close() ------------------------------------------------------------------- for i in r: print(i.select_one('.LC20lb').txt) print(i.select_one('.iUh30.bc').txt) print() driver.close() ----------------------------------------------- 둘 다 None None None None None None None None None None 이렇게 나오네요 왜 그럴까요?
you prolly dont give a damn but does any of you know of a method to get back into an Instagram account?? I somehow forgot my login password. I would appreciate any help you can give me.
@Jordan Ahmed Thanks for your reply. I found the site through google and im in the hacking process now. I see it takes a while so I will get back to you later when my account password hopefully is recovered.
정말 감사합니다. 따라하는 데 정말 잘되네요 제가 신라면세점에서 스크래핑을 연습중인데 궁금한것이 있습니다. 검색된 사이트에서 스크래핑은 어느정도 되는거 같은데 검색된 사이트에서 상품이 검색이 되면 검색된 상품에서 그 상품링크를 클릭하고 안에 있는 정보를 빼올려면 어떻게 해야할까요? 하나씩 다 클릭해서 정보를 빼와야 해야하는데 아무리 검색을 해보고 여기저기 물어봐도 뚜렷한 대답을 얻기가 좀 힘드네요 ㅠㅠ
좋은 영상 감사합니다. 제가 href=javascriptmove() 형식의 url을 find_all(‘a’)[0].get(‘href’)로 추출해서 urllib.request.urlopen(url) 의 url로 넣어서 그 페이지의 내용을 긁어모으고 싶은데, 이동이 안됩니다. 알려주신 방법을 응용하고 싶은데 제가 많이 부족하네요. 혹시 조언을 구할 수 있을까요..?
선생님~~ 같은 버전크롬드라이브도 깔고 같은 파일에 넣었는데 www.google.com/search?q=%ED%8C%8C%EC%9D%B4%EC%8D%AC Traceback (most recent call last): File "/Users/minzogi/opt/anaconda3/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 76, in start stdin=PIPE) File "/Users/minzogi/opt/anaconda3/lib/python3.7/subprocess.py", line 800, in __init__ restore_signals, start_new_session) File "/Users/minzogi/opt/anaconda3/lib/python3.7/subprocess.py", line 1551, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'chromedriver': 'chromedriver' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/minzogi/webscraping.py", line 21, in driver = webdriver.Chrome() File "/Users/minzogi/opt/anaconda3/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__ self.service.start() File "/Users/minzogi/opt/anaconda3/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 83, in start os.path.basename(self.path), self.start_error_message) selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see sites.google.com/a/chromium.org/chromedriver/home 이렇게 뜨네요.. 어떻게 해야하나요..?
chromedriver.exe 파일과 작성하신 파이썬 파일이 같은 경로에 있는데 이 에러가 나온다면 제가 이것만 보고서는 이유를 알 수 가 없습니다. 구글에서 selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH를 검색해보세요.
크롬드라이버를 버전과 경로를 맞춰서 다운 받았는데 하기와 같은 오류가 나오네요.. Traceback (most recent call last): File "c:/Python/crawling/20200606 - crawling.py", line 11, in driver = webdriver.chrome('C:/chromedriver.exe') TypeError: 'module' object is not callable 첫 입문이라서 헤메고 있습니다. 도움 부탁드립니다. 감사합니다.
늦었지만 이말이 클래스면서 리스트 의미고 코드상 15번라인 r = soup.select('.r') 중 구글 검색결과의 클래스가 r 에서 다른 것으로 바뀌어서 안된듯합니다. '.r' -> '.클래스명' (수정) 저도 초보라 동일증상으로 안되서 강의 계속 돌려보고 확인했네요.
1. 별다른 경우가 아니면 (html, 'html.parser')로 사용하시면 됩니다. 2. 강의에서 나오는 것처럼 사용법이 다릅니다. beautifulsoup 공식 문서를 참고하시면 parser에 대한 내용과 select, find의 사용법을 자세히 살펴보실 수 있습니다.
안녕하세요. 올려주시는 강의들 잘 보고 있습니다. 문의 사항이 있는데요... 네이버에 셀레니움을 이용하여 로그인할 시 "새로운 브라우저"로 로그인을 했다면 "등록"하라는 창이 계속 뜹니다. xpath와 click()을 이용해도 "등록"버튼이 클릭되지 않는데요. 혹시 해결 방법이 있을까요? 항상 고맙습니다.
등록 버튼 클릭안하고 그 화면에서 그냥 바로 주소 바꿔서 네이버 들어가면 로그인되어있습니다. 버튼을 꼭 클릭하지 않더라도 진행이 가능합니다. 그리고 클릭이 안되는건 클릭할 수 없는 html요소를 선택했기 때문입니다. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-2EBrICPZVLY.html 이 강의도 한번 보시면 도움이 될겁니다.
질문이 있습니다. 1. soup = BeautifulSoup(html) 은 영상과 같이 실행이 되긴 하지만 경고문이 나옵니다. soup = BeautifulSoup(html,"html.parser") 으로 수정시 경고문이 나지 않아요. 이유가 무엇인가요 ?? from urllib.parse import quote_plus from bs4 import BeautifulSoup from selenium import webdriver baseurl = "www.google.co.kr/search?q=" plusUrl = input('무엇을 검색할까요? : ') url = baseurl + quote_plus(plusUrl) print(url) driver = webdriver.Chrome() driver.get(url) html = driver.page_source soup = BeautifulSoup(html,"html.parser") r = soup.select('.r') print(type(r)) for i in r: print(i.select_one('LC20lb.DKV0Md').text) #print(i.select_one('iUh30.bc.tjvcx').text) print() driver.close() ======================================================== UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently. The code that caused this warning is on line 14 of the file C:/Users/Junyoung/PycharmProjects/untitled/venv/Scripts/크롤링.py. To get rid of this warning, pass the additional argument 'features="lxml"' to the BeautifulSoup constructor. soup = BeautifulSoup(html) ========================================================
UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently. 메세지로 나온걸 해석해보시면 이유가 나와있습니다. parser를 사용해야하는데 지정을 안해줬기때문에 lxml를 사용한다는 내용이죠.
다양한 방법이 있겠지만... 다른걸 배우지 않고 해결하려면, soup = BeautifulSoup(html, 'html.parser') html = str(soup).replace('','') soup = BeautifulSoup(html, 'html.parser') html 가져온걸 str로 바꿔서 주석 부분을 없애고 다시 html변수에 넣어주고, 그걸 다시 soup로 지정하면 이부분이 없는 html으로 작업 할 수 있습니다.
@@kimfl 죄송합니다. 이제서야 좋은 답변을 얻을 수 있는 방법이라는 영상을 봤습니다.ㅜ 주피터 노트북을 사용했구요 '파이썬 구글 크롤링 selenium beautifulsoup 웹스크래핑'을 따라하다가 에러가 발생했어요. 에러는 name 'quote_plus' is not defined 라고 떴습니다. 아나콘다 프롬프트에서 pip install quote_plus를 쳐봐도 에러가 뜨네요.
@@kimfl 죄송합니다. 좋은 답변을 얻는 영상이라는 것을 이제서야 보고 질문을 제대로 올리지 못했습니다. 다행히 그 오류가 사라졌어요. 저도 왜인지는 모르겠습니다. 어쨌든 다행이라고 생각하고 계속 따라서 하고 있습니다. 앞으로도 좋은 영상을 많이 올려주실거라고 기대하면서 저도 따라서 연습하겠습니다. !
좋은 강의 감사합니다. i.select_one('.Class 이름').text 입력 시에, Class 이름 내에 띄어쓰기가 있으면 attribute 에러가 뜨네요. ex) .LC20lb DKV0Md > .LC20lb 로 해주면 에러 해결됨. 초보라 무슨 문제인진 모르겠지만.. 혹시 같은 문제이신분들 참고하세요. 변수명 같은데에 띄어쓰기 안쓰고 '_' 쓰는걸 배운것 같아서.. 고민하다 한번 해보니 되네요
위 문제는 클래스 이름에 띄어쓰기가 있는 게 아니라 클래스를 여러 개 사용한 겁니다. html에서 클래스는 원래 여러 개 사용하는 게 가능합니다. 선택할 때는 사용하신 방법대로 한 개만 가져와도 선택이 됩니다. 하지만 이 방법은 앞에 가져온 클래스가 다른데도 사용된다면 그것도 같이 선택될 테니 html을 잘 확인해보고 사용해야 합니다. 그리고 클래스가 여러 개로 되어있는 걸 선택하는 방법은 지금 이 강의에도 나와있습니다.
print(i.select_one('.ellip').text) AttributeError: 'NoneType' object has no attribute 'text' 웹페이지를 열고나서 이런에러가 나네요 beautifulsoup4 pip 할때 버전이 4.4.1 이라고 뜨던데 영상에서 보는 버전보다 낮아서 그런건지? 다른 이유인지 모르겟지만 text 속성 인식을 못하는듯... 알려주세요.