inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

셀레니움 변경점

미해결

내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)

https://selenium-python.readthedocs.io/locating-elements.html find_element/s 함수에 변경점이 생겨 현재 교재로는 코드가 작동하지 않습니다. 위 페이지 참고하시면 되겠습니다.

  • python
  • 웹-크롤링
scrawl. dev 댓글 1 좋아요 2 조회수 806

request.get() 하면 SSLCertVerificationError 에러가 납니다.

미해결

내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)

구글로 찾아보니 신뢰할수 없는 인증서 사용이라서 verify=False 를 하면 된다고 하는데요, res = requests.get( " https://search.naver.com/search.naver?where=view&sm=tab_jum&query=%EB%A7%9B%EC%A7%91 ", verify=False ) 하면 아래와 같이 경고가 나옵니다. 해결 할 방법이 있나요? InsecureRequestWarning: Unverified HTTPS request is being made to host 'search.naver.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings warnings.warn(

  • python
  • 웹-크롤링
전혜선 댓글 1 좋아요 0 조회수 536

첫째 페이지 크롤링 오류

해결됨

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

import requests from bs4 import BeautifulSoup main_url = "https://www.coupang.com/np/search?component=&q=%EA%B2%8C%EC%9D%B4%EB%B0%8D+%EB%A7%88%EC%9A%B0%EC%8A%A4&channel=user" header = { 'Host': 'www.coupang.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Language': 'ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3',} response = requests.get(main_url, headers = header) html = response.text soup = BeautifulSoup(html, 'html.parser') links = soup.select("a.search-product-link") for link in links: sub_url = "https://www.coupang.com/" + link.attrs['href'] response = requests.get(sub_url,headers = header) html = response.text sub_soup = BeautifulSoup(html,'html.parser') #브랜드명 #중고상품 예외처리 try: #아래 태그를 찾고 brand = soup.select_one("a.prod-brand-name") except:# 없으면 아래처럼 비우기 brand = "" #상품명 name = soup.select_one("h2.prod-buy-header__title") #가격 price = soup.select_one("span.total-price > strong") print(brand,name,price) 이렇게 작성 하고 실행 시키니 아무일도 일어나지 않았습니다. 그래서 ctrl + F5 로 실행 시키니 크롤링 된 데이터가 모두 none 으로 크롤링 되네요 ..

  • python
  • 웹-크롤링
정명준 댓글 1 좋아요 1 조회수 358

Konlpy 설치 오류

미해결

파이썬 텍스트 분석 입문 - 데이터 수집부터 분석까지

konlpy설치과정에서 오류가 발생했습니다. Conda 설치가 회사 네트워크 문제로 되지 않아 프롬프트로 파이썬을 설치했고 Python은 3.8.9버전입니다. (3.9와 최신버전인 3.11로 설치했었는데 에러가 해결되지 않아 3.8로 다운그레이드 했습니다.) Java는 19.0.2(64-bit)로 설치했고 JPype는 1.1.2-cp38-win_amd64로 설치했습니다. JAVA_HOME 환경변수 설정도 확인을 완료했는데 자바 패키지상의 오류가 나타나네요ㅜㅜ

  • pandas
  • 웹-크롤링
  • anaconda
  • 텍스트마이닝
워니 댓글 1 좋아요 0 조회수 3881

if/elif 관련 질문 드립니다

미해결

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

선생님 안녕하세요, 파이썬을 처음 배우고 있는데 강의 들으며 많은 도움 감사히 잘 받고 있습니다. 다른 게 아니라 해당 강의(아래 표기) 에서 '세 가지 숫자를 입력받아 가장 작은 수를 구하는 문제'에서 제가 작성한 코드로 data3을 가장 작은 수로 입력 했을 때 입력한 숫자 3개만 출력되고 가장 작은 값인 data3값이 출력이 안되었습니다 (data1,data2가 가장 작은 수 일 때는 각각 정상출력됨 ) 저는 if안에 if문을 넣어서 작성했는데 선생님이 작성하신 하나의 if절 내 and로 연결한 것이 달라서 출력이 안되는 것인지 문의 드립니다. (if절 안에 if절을 넣는 것과 하나의 if절 안에 and로 연결하는 것이 다른 의미를 가지는 것인지 궁금합니다) 해당 강의명: 문제를 풀며 가장 자연스럽게 익숙해지는 파이썬 기본: 문자열,리스트,조건문 활용1 (시간: 9분 30초~) 에서 '세가지 숫자를 입력받아 가장 작은 수를 구하는 문제 작성하신 코드 # data1=int(input()) # data2=int(input()) # data3=int(input()) # if data1<=data2 and data1<=data3: # print(data1) # elif data2<=data1 and data2<=data3: # print(data2) # elif data3<=data1 and data3<=data2: # print(data3) 제가 작성한 코드 data1=int(input('숫자1)) data2=int(input('숫자2)) data3=int(input('숫자3)) if data1<=data2: if data1<=data3: print(data1) elif data2<=data1: if data2<=data3: print(data2) elif data3<=data1: if data3<=data2: print(data3) (결과값) 숫자1 34 숫자2 45 숫자3 2 >> 32가 나와야 하는데 숫자1,2,3만 출력됨 미리 감사합니다! :)

  • python
  • 웹-크롤링
katiesuyoon1115 댓글 1 좋아요 0 조회수 260

스크롤이 되지 않는 오류.

해결됨

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하세요. 스타트코딩 선생님. 강의 재미있게 듣고 실습하고 있습니다. deprecated 경고문 제외하고는 큰 문제 없이 실행되어 50개의 결과는 가져옵니다. 그런데 좀 특이한 몇 가지 문제가 있습니다. ① 크롬이 불필요하게 2개 창으로 실행됩니다. 창 하나는 주소표시줄에 data; 라고 쓰여있는, 아무 동작도 하지 않는 텅 빈 화면을 보여주고, 그 다음에 열리는 크롬창은 네이버 이미지 검색 결과 화면이 우선은 잘 출력됩니다. ② 두 번째로 열리는 크롬창에서 검색 결과 화면까지는 나오고 주소까지 크롤링 되는데, 스크롤이 되지 않습니다. 그냥 화면에 보이는 이미지의 주소 결과 딱 50개만 크롤링 되는 것 같아요. 어지간해서는 대부분 구글링으로 해결했는데, 이 부분은 찾기가 어려워 직접 여쭤봅니다. 조언 부탁드립니다. from typing import KeysView from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By import time # 크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메시지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) service = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=chrome_options) # 웹페이지 해당 주소 이동 url = "https://search.naver.com/search.naver?where=image&sm=tab_jum&query=BTS" browser = webdriver.Chrome("c:/chromedriver.exe") browser.implicitly_wait(5) browser.maximize_window() browser.get(url) # 무한 스크롤 처리 # 스크롤 전 높이 before_h = browser.execute_script("return window.scrollY") # 무한 스크롤 while True: # 맨 아래로 스크롤을 내린다. browser.find_element(By.CSS_SELECTOR, 'body').send_keys(Keys.END) # 스크롤 사이 페이지 로딩 시간 time.sleep(2) # 스크롤 후 높이 after_h = browser.execute_script("return window.scrollY") if after_h == before_h: break before_h = after_h # 이미지 태그 추출 imgs = browser.find_elements(By.CSS_SELECTOR,'._image._listImage') for i, img in enumerate(imgs, 1): # 각 이미지 태그의 주소 img_src = img.get_attribute("src") print(i, img_src)

  • python
  • 웹-크롤링
kys915 댓글 1 좋아요 0 조회수 1134

selenium을 활용한 크롤링 질문

해결됨

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하세요 강사님 selenium은 동적 크롤링을 할때 사용한다고 알고있습니다. 간혹 로그인을 해야만 정보를 열람할 수 있는 사이트가 있는데 이런 경우에는 어떤식으로 접근을 할 수 있을지 알고싶습니다!

  • python
  • 웹-크롤링
정명준 댓글 2 좋아요 1 조회수 563

웹툰 사이트 body 안에가 안불러져옵니다.

미해결

파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)

<body> 태그 하위 <div id="root"> 태그 하위에 실제 사이트 html이 비어져서 옵니다.

  • python
  • 웹-크롤링
  • selenium
  • 웹-스크래핑
HanJoon Peter Kim 댓글 2 좋아요 0 조회수 698

tfidf 관련

미해결

파이썬 텍스트 분석 입문 - 데이터 수집부터 분석까지

안녕하세요, tfidf관련하여 오류가 발생하여 질문드립니다. csv파일로 뉴스를 토픽모델링하는 과정에서, csv 파일에 뉴스를 추가하면서 계속 토픽모델링을 진행하는 과정에서 어느 순간에 아래처럼 오류가 발생합니다. 토픽모델링이 가능했었는데, 왜 자료를 추가하면 진행하면 어느 순간 해당 오류가 생기는지 알 수가 없어서 질문드립니다ㅠㅠ 좋은 강의해주셔서 감사합니다! UnicodeDecodeError Traceback (most recent call last) Cell In[127], line 2 1 vectorizer = TfidfVectorizer(tokenizer=tokenizer, max_df=0.90, min_df=100, max_features=20000) ----> 2 tfidf = vectorizer.fit_transform(topnews['text']).toarray() File c:\Users\My COM\AppData\Local\Programs\Python\Python310\lib\site-packages\sklearn\feature_extraction\text.py:2131, in TfidfVectorizer.fit_transform(self, raw_documents, y) 2124 self._check_params() 2125 self._tfidf = TfidfTransformer( 2126 norm=self.norm, 2127 use_idf=self.use_idf, 2128 smooth_idf=self.smooth_idf, 2129 sublinear_tf=self.sublinear_tf, 2130 ) -> 2131 X = super().fit_transform(raw_documents) 2132 self._tfidf.fit(X) 2133 # X is already a transformed view of raw_documents so 2134 # we set copy to False File c:\Users\My COM\AppData\Local\Programs\Python\Python310\lib\site-packages\sklearn\feature_extraction\text.py:1387, in CountVectorizer.fit_transform(self, raw_documents, y) 1379 warnings.warn( 1380 "Upper case characters found in" 1381 " vocabulary while 'lowercase'" 1382 " is True. These entries will not" 1383 " be matched with any documents" ... ---> 93 result = [(token.getMorph(), token.getPos()) for token in result] 95 if join: 96 result = ['{}/{}'.format(morph, pos) for morph, pos in result] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 0: invalid continuation byte

  • pandas
  • 웹-크롤링
  • anaconda
  • 텍스트마이닝
haeribo 댓글 1 좋아요 0 조회수 546

Chrome Network로 연결후 Packet 을 분석하는 방법

미해결

파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)

1. Chrome Network로 연결후에 Packet Network 분석하는 방법은 없을까요? Packet 툴로 잡히지 않는 것 같아서 다른 방법이 있나 문의드립니다. 2. 문의사항이 있어 다른글에 남겨놓으신 카톡으로 연락을 드렸는데, 확인부탁드립니다.

  • 웹-크롤링
  • selenium
  • cdp
EFCP 댓글 1 좋아요 0 조회수 953

몇가지 문의사항이 있어서 올립니다

해결됨

파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)

서두에 얘기하신 것처럼 찾기어려운 정보가 포함되어 있고, 도움이 많이 되었습니다. 몇가지 문의사항이 있어서 올립니다. 1. selenium 으로 정상작동했는데, undetected_chromedriver 로 바꾸면 사이즈가 굉장히 넓게 나오네요 options.add_argument(f'--window-size=360,640') 다른 소스는 동일하고 --window-size 도 동일하게 넣었는데, 이상하네요. 강의 영상으로 봐도 소스는 동일한 걸로 보이는데, 무슨 차이가 있을까요? => 확인된 내용 추가로 적습니다. https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/1100 현재 최신버젼은 3.4.6 버젼인데 위 내용으로 보면 3.4.5 버젼부터 작동되지 않는다고 하네요. 3.4.4 버젼으로 다운시키니 정상작동됩니다. 안되시는 분들은 참고하시기 바랍니다. 최신버젼으로 사용가능한 방법이 있으면 알려주시기 바랍니다. 아래 답변 참고하세요 2. 네이버의 경우 --headless나 --incognito 를 사용해도 영향이 있을까요?

  • 웹-크롤링
  • selenium
  • cdp
EFCP 댓글 1 좋아요 1 조회수 666

셀레늄 실습중 문의

해결됨

실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용

수업을 듣고 다른 사이트로 실습을 해보려고 하는데, jsp로 만들어진 공공기관 사이트는 뭔가 잘 안먹히는 모습니다. 아래 사이트의 테이블 정보를 가져오고 싶은데, 얘네들은 클릭해도 주소가 변경되는것도 없고 아래와 같이 table이 들어있는 상위 class 태그를 찾아서 정의하고, 거기에서 table의 class명을 넣고 tbody, tr까지 찾아들어가도록 코딩을 했는데 table의 class명이 없다고 에러가 뜹니다. 이런 사이트의 table내 정보는 어떻게 가져올 수 있고, 테이블에 있는 원자재를 클릭해서 넘어가는 페이지는 어떻게 찾아갈 수 있나요?(XPATH, LINK_TEXT해도 먹히지 않아요..) https://www.motie.go.kr/motie/py/sa/todayeconomyindexprice/todayEconomyIndexPri.jsp url = "http://www.motie.go.kr/motie/py/sa/todayeconomyindexprice/todayEconomyIndexPri.jsp" driver.get(url) time.sleep(2) # driver.find_element(By.LINK_TEXT,"통계정보").click() # time.sleep(2) # driver.find_element(By.LINK_TEXT,"원자재가격정보") # time.sleep(2) class1 = driver.find_element(By.CLASS_NAME,"iframeLayout01") #테이블은 위와 같이 <table>안에 <tbody>, <tbdoy>안에 <tr>, <tr>안에 <td> 순으로 포함되어 있다. table_content = class1.find_element(By.CLASS_NAME,"data_print") tbody = table_content.find_element(By.TAG_NAME,"tbody") rows = tbody.find_elements(By.TAG_NAME,"tr") for index, value in enumerate(rows): body=value.find_elements(By.TAG_NAME,"td")[0] print(body.text)

  • python
  • 웹-크롤링
  • 웹-크롤링
  • selenium
  • beautifulsoup
쥰쓰 댓글 1 좋아요 0 조회수 836

ImportError: cannot import name 'webdriver' from partially initialized module 'selenium' 에러

해결됨

실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용

A 폴더 안에 있는 B폴더에서 셀레니움 실습하던게 있었는데, 여기서는 자동설치 코드로 실행이 잘 되는데요, A폴더 안에 C폴더에서 이번 강의들으면서 실행하려고 하니 아래 에러가 발생합니다.. 어떻게 해결해야하나요? (base) C:\Users\jyjcj\PycharmProjects\webcrawling>C:/Anaconda3/python.exe c:/Users/jyjcj/PycharmProjects/webcrawling/kimple_inflearn/selenium_exercise/selenium.py Traceback (most recent call last): File "c:\Users\jyjcj\PycharmProjects\webcrawling\kimple_inflearn\selenium_exercise\selenium.py", line 14, in <module> from selenium import webdriver File "c:\Users\jyjcj\PycharmProjects\webcrawling\kimple_inflearn\selenium_exercise\selenium.py", line 14, in <module> from selenium import webdriver ImportError: cannot import name 'webdriver' from partially initialized module 'selenium' (most likely due to a circular import) (c:\Users\jyjcj\PycharmProjects\webcrawling\kimple_inflearn\selenium_exercise\selenium.py)

  • python
  • 웹-크롤링
  • selenium
  • beautifulsoup
쥰쓰 댓글 1 좋아요 0 조회수 2242

광고 상품 표기 추가문의

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하세요. 문의드립니다. 광고 상품 대신에 로켓상품도 표기하고자 합니다. if len( link.select (".ad-badge-text")) > 0: print("광고상품") 를 아래와 같이 수정하면 될까요? 해봤는데 아무표기가 안되서요. if len( link.select ("span.badge rocket")) > 0: print("로켓상품") 그리고 광고상품 로켓상품 둘다 표현하고자 하면 아래와 같이 표기하면 될까요? if len( link.select (".ad-badge-text")) > 0: print("광고상품") elif len( link.select ("span.badge rocket")) > 0: print("로켓상품")

  • 웹-크롤링
  • python
suki 댓글 1 좋아요 0 조회수 298

광고상품 표기외에 상품명도 보려고 하는데요. 에러가나네요.

해결됨

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

광고상품 광고상품 표기외에 상품명도 보고자하는데요. 아래와 같이 에러가 납니다. 상품명도 보려면 어떻게 해야 할까요? https://www.coupang.com//vp/products/7119405125?itemId=17821748239&vendorItemId=84985642101&sourceType=srp_product_ads&clickEventId=f08dcc16-7eb1-4918-979f-8e4d3e2f2314&korePlacement=15&koreSubPlacement=1&clickEventId=f08dcc16-7eb1-4918-979f-8e4d3e2f2314&korePlacement=15&koreSubPlacement=1 <div class="name">디엑스 DX320QHD 32인치 QHD 75Hz IPS 고성능 게이밍 컴퓨터 모니터, DX320QHD(일반)</div> Traceback (most recent call last): line 45, in <module> print(ad_name).text AttributeError: 'NoneType' object has no attribute 'text' print(ad_name).text에서 text를 빼고 실행시켜보았는데 다른 상품인데 아래와 같이 모두 상품명이 동일하게 나옵니다. <div class="name">인터픽셀 60.5cm FHD 75Hz IPS 평면 게이밍 모니터 화이트, IP2422(무결점)</div> 광고상품 https://www.coupang.com//vp/products/6070742312?itemId=11207404701&vendorItemId=78484994606&sourceType=srp_product_ads&clickEventId=2981eff0-533f-432a-ace7-a9dbbc8cf39b&korePlacement=15&koreSubPlacement=12&clickEventId=2981eff0-533f-432a-ace7-a9dbbc8cf39b&korePlacement=15&koreSubPlacement=12 <div class="name">인터픽셀 60.5cm FHD 75Hz IPS 평면 게이밍 모니터 화이트, IP2422(무결점)</div> 광고상품 https://www.coupang.com//vp/products/1955685399?itemId=3323143682&vendorItemId=71310006110&sourceType=srp_product_ads&clickEventId=8ab74e64-bccb-400c-968d-9fe175da93a9&korePlacement=15&koreSubPlacement=15&clickEventId=8ab74e64-bccb-400c-968d-9fe175da93a9&korePlacement=15&koreSubPlacement=15 <div class="name">인터픽셀 60.5cm FHD 75Hz IPS 평면 게이밍 모니터 화이트, IP2422(무결점)</div> 광고상품 for link in links: print(ad_name).text <-이부분 때문에 에러가 나는것 같습니다. 어떻게 표기를 해야 할까요?

  • python
  • 웹-크롤링
suki 댓글 1 좋아요 1 조회수 467

유튜브 크롤링/키워드 별 크롤링 방법에서 에러발생합니다.

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

div#metadata-line > span 위 그림에서 처럼 이것은 인식 합니다만 위 그림에서와 같이 div#metadata-line > span::nth-child(1) 은 인식 하지 못하는 것 같습니다. info.find_elements(By.CSS_SELECTOR, "div#metadata-line span")[0] selenium에서는 이렇게 해서 해결했습니다만... views = info.select("div#metadata-line > span")[1].text views = info.select("div#metadata-line span")[1].text BeautifulSoup에서는 위 코드도 오류가 발생합니다.

  • python
  • 웹-크롤링
  • 웹-크롤링
새벽별 댓글 3 좋아요 1 조회수 1022

질문드립니다.

미해결

남박사의 파이썬 기초부터 실전 100% 활용

사용자 입력 예외처리를 하고 있는데, 1)문자 입력 시 오류 2)3자리 숫자가 아닐 경우 오류 다음과 같이 코드를 짰는데 1)의 경우 except 부분에서 "입력 오류"를 출력하지만 2)의 경우 "입력오류"가 출력되지 않고 그냥 재입력하게 되네요. 혹시 이유를 알 수 있나요? 또한 문자 입력 시 "숫자만 입력 가능합니다"를 출력 두자리수 입력 시 "세 자리 수를 입력하세요"를 출력 하도록 하려면 코드를 어떻게 수정해야 할까요? 감사합니다.! #세 자리 숫자만 입력할 수 있게 하는 함수 def input_check(msg, casting = int): while True: try: num = input(msg) # 사용자 입력 num_str = str(num) #맨 앞의 수가 0일경우 0이 잘려버리기 때문에 str을 따로 저장 if(casting(num) and len(num) == 3): return num_str except: print("입력 오류") continue

  • 웹-크롤링
  • 웹-크롤링
  • python
Poki 댓글 2 좋아요 1 조회수 407

인기 태그

인프런 TOP Writers

주간 인기글