묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
셀레니움 option
셀레니움 최신 버전에서 service를 쓸 수 없는데, 이제 다음과 같은 코드에서option 기능은 어떻게 코드를 짜면 될까요?아래 코드에서 service 부분을 빼야할까요?셀레니움 버전 업그레이드와 함께 코드에서 수정할 부분이 있을까요?위는 코드랑 출력 결과이고 아래는 코드만 따로 옮긴 것입니다. from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager import time user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" options = Options() options.add_experimantal_option("detach", True) options.add_argument(f"user-agent={user_agent}") # options.add_argument("--start-maximized") # options.add_argument("--start-fullscreen") options.add_argument("window-size=500, 500") # driver = webdriver.Chrome("../driver/chromedriver.exe") service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=options) url = "https://naver.com" driver.get(url)
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
src 잘못된 링크 검색 여부
src에서는 잘못된 썸네일 링크들이 간혹 있잖아요, 예를 들어 "//img1a.coupangcdn.com/image/coupang/search/blank1x1.gif" 이런 링크들이요그런데 아래 이미지 처럼 왜 꼭 "페이지 소스 보기"에서 검색을 해야 링크가 어디 있는지 찾을 수 있고 왜 그냥 페이지에서 개발자 도구를 검색을 하면 이 잘못된 링크들은 검색이 되지를 않는거죠?이렇게 여기서 검색을 하면 하나도 나오지 않습니다. 혹시 오류가 있는건지 원래 안뜨는건지.. 알 수 있을까요 ?(다른 올바른 썸네일 링크는 또 여기서 검색하면 뜨더라고요)
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
(쿠팡)썸네일 링크가 출력이 안되네요
이렇게 코드 작성을 했는데, 강의와는 다르게 출력이 안되네요 현재 강의는 쿠팡 크롤링의 [상품 링크, 썸네일 url 가져오기] 이고, 시점은 04:14 입니다. 강의 영상 내 html하고 지금 쿠팡 html 하고 비교도 해봤는데 틀린 것이 없고 오타도 없는 것 같은데 문제가 뭘까요 ? import requests from bs4 import BeautifulSoup headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36", "accept-language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7" } cookie = {"a" : "b"} base_url = "https://www.coupang.com/np/search?component=&q=" keyword = input("검색어 입력하세요 : ") search_url = base_url + keyword req = requests.get(search_url, timeout=5, headers=headers, cookies=cookie) html = req.text soup = BeautifulSoup(html, "html.parser") items = soup.select("[class=search-product]") print(len(items)) rank = 1 for item in items: badge_rocket = item.select_one(".badge.rocket") if not badge_rocket: continue name = item.select_one(".name") price = item.select_one(".price-value") thumb = item.select_one("search-product-wrap-img") link = item.select_one("a")["href"] # or item.a["href"] print(f"{rank}위") print(name.text) print(f"{price.text} 원") # print(link) print(thumb["src"]) print() rank += 1결과는 이렇게 뜨네요쿠팡 html 입니다.
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
오류가 계속 뜨네요
현재 네이버 view 탭 검색 결과 크롤링 3 , 10분 43초 지점입니다.손흥민, 파이썬, 블랙핑크 검색해보고 개발자 탭에서 .api_ani_send 까지 각각 다 확인해서 강의 대로 타이핑 해서 쳤더니 전 0 이라고 나옵니다. 눈으로 직접 확인까지 하고 해보는데도 왜 에러가 나는 건가요 ? import requests from bs4 import BeautifulSoup keyword = input("검색어를 입력하세요. : ") base_url = "https://search.naver.com/search.naver?where=view&sm=tab_jum&query=" headers = {"User-Agent" : "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36"} url = base_url + keyword req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, "html.parser") items = soup.select(".api_ani_send") for rank_num, area in enumerate(items, 1): print(f"<<<{rank_num}>>>") ad = area.select_one(".link_ad") if ad: print("광고입니다.") continue title = area.select_one(".api_txt_lines.total_tit") # 빈 칸을 . 으로 맞춰줘야한다. name = area.select_one(".sub_txt.sub_name") print(name.text) print(title.text) print(title['href']) print() print(len(items))
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
왜 계속 실행은 되는데 출력이 안될까요 ???
현재 강의는 "네이버 view탭 검색결과 크롤링 2" 이며 00:46 지점입니다. 계속 ".total_area"를 선택하고 for 문도 강의에서랑 똑같이 작성해서 실행하는데 출력이 안나옵니다. 어디를 고쳐야할까요 ?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
셀레니움으로 크롬 실행 후 자동으로 창이 닫힙니다.
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/70.0.0.0 Safari/537.36" options = Options() options.add_experimental_option("detach", True) options.add_argument(f"user-agent={user_agent}") # options.add_argument("--start-maximized") # options.add_argument("--start-fullscreen") # options.add_argument("window-size=500,500") # options.add_argument("--headless") # options.add_argument("--disable-gpu") options.add_argument("--mute-audio") options.add_argument("incognito") service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=options) url = "https://naver.com" driver.get(url) print(driver.page_source[:1000]) # driver.quit()수업 진행을 그대로 따라 하였습니다. 다만 코드 실행은 잘 되지만 크롬창이 계속해서 종료가 되어 그것을 막는 코드를 입력해도 계속 자동 종료가 됩니다저의 크롬 버전은 버전 114.0.5735.199(공식 빌드) (64비트) 이며셀레니움 버전은 4.10.0 입니다!진도를 따라 가고싶으나 계속해서 창이 꺼져 진행이 어렵습니다 ㅠㅠ 도움을 원합니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
맥도 동일하게 적용될까요?
from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://google.com") time.sleep(2) #2. 알아서 버전업을 해줌별다른 반응이 없네요 ㅠ 맥북은
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
로그인
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다.문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다.답변은 바로 제공되지 않을 수 있습니다.실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다.셀레니움으로 알리익스프레스 로그인하려고 xpath 따서 해봐도 잘안되네요……
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
선생님 쿠팡 크롤링이 안돼요
첨부대로 따라하고 실행 후 input값 입력하면 저렇게 [] 리스트만 출력되거나, 아예 아무것도 나타나지 않아요. 뭐가 문제일까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
선생님 쓱닷컴이 바뀌었는데 이런형태는 처음이라서 문의 드립니다.
쓱닷컴 이벤트 주소는 아래와같습니다.https://shinsegaemall.ssg.com/event/eventMain.ssg?Sgnb=event 문제는 이벤트 페이지가 1, 2 이렇게 2개 존재합니다.문제는 1 페이지를 클릭하던2페이지를 클릭하던, 주소가 모두 같습니다. 1페이지 클릭시 -> https://shinsegaemall.ssg.com/event/eventMain.ssg?Sgnb=event2페이지 클릭시->https://shinsegaemall.ssg.com/event/eventMain.ssg?Sgnb=event 이럴때는 어떻게 해야하나요?셀레니움이 답일까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
"쿠팡 제품 검색 결과 크롤링" 강의를 응용해서 타오바오 사이트에서 해보려고 하는데,,
"쿠팡 제품 검색 결과 크롤링" 강의를 응용해서 타오바오 사이트에서 해보려고 하는데,자꾸 안돼서 아래와 같이 print(html) 했더니뭔가 차단된거 같은 html 막 쭉 뜨네요 이럴때는어떻게 해야하나요?req = requests.get(links, timeout=5, headers=headers, cookies=cookie)html = req.textsoup = BeautifulSoup(html, "html.parser")print(html)
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
쿠팡정보 웹사이트 관련,
선생님! 쿠팡정보 크롤링해서 웹사이트 만들었습니다이렇게 유익한 강의 처음입니다!! 너무너무 감사해요다름이 아니라 혹시 괜찮으시면 선생님과 만든 웹사이트에 쿠팡 파트너스 API 연동시키는 부분 강의로 찍어주실수 있는지요 아님 유튜브 영상이라도 부탁드려요 ㅠㅠㅠ 혼자 하려니까 API 주소를 어따 붙여넣기 해야하는지 감이 안잡히네요
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
네이버가 바뀌었는데 카테고리? 리스트 가져오는게 안되네요?
안녕하세요.강의 잘 듣고 있습니다.네이버가 새로운 형태로 바뀌었는데아주 간단한 것이 해결이 안되네요?이유가 뭘까요?기본구조는 이렇게 생겼습니다.<li class="shortcut_item"> <a href="mail.naver.com" class="link_service"> <span class="service_icon type_mail"> ::before ::after </span> <span class="service_name">메일</span> </a> </li> <li class="shortcut_item"> </li>아래처럼 너무 단순한거라 생각했던 것을 못 가져오네요?확인 부탁드려요~service_name = soup.find(class_="service_name", string="메일") print(service_name) # None 출력이 안되네 이유가 뭘까나? print()
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
강의 끝까지 잘 들었습니다. 복습도 해야겠죠
강의를 잘 들었습니다.완강이신지요? 너무 훌륭한 강의라서 좀더 이어졌으면 하는 간절한 바램입니다. 지금은 잘 이해하고 있다고 생각드는데 막상 실전에서 사용하려면 잘 안돼요.... 우선 복습부터 해야겠네요....감사합니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
강의잘듣고공부중입니다~^^작성중에 url 에 특정이미지를 크롤링하는걸 배웠는데도 에러가떠서 한수부탁드려요ㅜ
""" dumpimages.py Downloads all the images on the supplied URL, and saves them to the specified output file ("/test/" by default) Usage: python dumpimages.py https://www.1688.com// [output] """ from bs4 import BeautifulSoup as bs from urllib.request import ( urlopen, urlparse, urlunparse, urlretrieve) import os import sys def main(url, out_folder="/test/"): """Downloads all the images at 'url' to /test/""" soup = bs(urlopen(url)) parsed = list(urlparse(url)) for image in soup.findAll("img"): print("Image: %(src)s" % image) filename = image["src"].split("/")[-1] parsed[2] = image["src"] outpath = os.path.join(out_folder, filename) if image["src"].lower().startswith("http"): urlretrieve(image["src"], outpath) else: urlretrieve(urlunparse(parsed), outpath) def _usage(): print("usage: python dumpimages.py http://example.com [outpath]") if __name__ == "__main__": url = sys.argv[-1] out_folder = "/test/" if not url.lower().startswith("http"): out_folder = sys.argv[-1] url = sys.argv[-2] if not url.lower().startswith("http"): _usage() sys.exit(-1) main(url, out_folder)root@goorm:/workspace/firstContainer# cd "/workspace/firstContainer";root@goorm:/workspace/firstContainer# python3 /workspace/firstContainer/index.pyTraceback (most recent call last): File "/workspace/firstContainer/index.py", line 38, in <module> url = sys.argv[-2]IndexError: list index out of range 구름ide로작성했는데 이렇게 오류가 떠요ㅠㅠ전체이미지가 아닌 배웠던 class 특정영역의 이미지들만 일괄저장하고싶어서요;;ㅠ
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
새로운 탭을 생성하고, 이동시 크롬 창 활성화
안녕하세요!headless를 이용하면 안되는 사이트도 있는거 같아서.그냥 크롬창을 띄워놓고 작업을 하는데요.탭을 2개 열어 놓고 작업을 시켰습니다.근데 탭을 변경하면 최소화된 크롬창이 자꾸 활성화 되면서 모니터 앞으로 튀어나오는데요..탭 변경시driver.switch_to.window(driver.window_handles[0])이 코드를 사용하는데요.0에서 작업하다가 1로 넘기면,넘길 때 마다 크롬창이 앞으로 팍 튀어나옵니다!해결 방법이 있을까요?headless를 사용하지 않고, 크롬창이 열리는 대신, 그냥 최소화 해놓고 작업을 하고 싶습니다!
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
셀레니움 바뀐 문법이 궁금합니다. webdriv.send_keys(Keys.ENTER)
셀레니움 질문드료요 ~인풋창에서 글을 입력하는데요 .webdriv= webdriver.Chrome(options=options)from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By 에러가 납니다. 문법이 바뀐것 같은데요 .. 목적은 인풋창에 값을 입력한뒤 Key.ENTER 가 하려고했습니다. keys.enter는 에러가 나서요 바뀐 . 문법이 궁금합니다. ------------------ webdriv.find_element(By.XPATH, # 는 알겠으나 // webdriv.send_keys(Keys.ENTER) # 이거는 어떻게 해야할지 몰라서 여쭈어 봅니다.
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
쿠팡 사이트 접속 제한은?
강의 잘 들었습니다!쿠팡 사이트에 여러번 시도를 하니까엑세스 디나인이 뜨더라구요.강사님은 혹시 이것이 발생하는 주기를 알고 계실까요?예)1분에 10번 이상 접속 시도시 차단.차단되면 1일 후 이용 가능. 이런 대략적인 정보나? 경험이 있으면 알려주시면 감사하겠습니다!
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
ancestor :: span[2] 어떻게 해석해야 할지 //ancestor :: div[2] -- 질문
ancestor :: span[2] 어떻게 해석해야 할지 모르겠습니다. //ancestor :: div[2] --------- 질문 :: div등 [1] [2] 번호의 의미와 분석법 , ancestor :: span[2] ancestor 쓴는 이유와 찾는 방법 순서 ..궁금합니다 ~
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
셀레니움으로 thumb 이미지 클릭을 못합니다 도와주세요 ㅠ
선생님 난관에 부딪혔습니다.제목과, 이름은 잘가져오는데.썸네일 이미지가 메뉴에 가려져 있어서, 클릭을 못한다고 합니다. 이를 어찌 해결해야 할지 도저히 모르겠습니다 일단 코드는 아래와 같습니다.items = driver.find_elements(By.CSS_SELECTOR, "#_chartList > li.list_item") time.sleep(2) #_chartList .title.ellipsis for idx, item in enumerate(items[:5], 1): title = item.find_element(By.CSS_SELECTOR, 'p.title.ellipsis') name = item.find_element(By.CSS_SELECTOR, 'span.name.ellipsis') thumb = item.find_element(By.CSS_SELECTOR, 'div.thumb > a') thumb.click() time.sleep(2) album_url = driver.current_url driver.back() print(f">>>{idx}<<<") print(title.text.strip()) print(name.text.strip()) print(album_url) print() time.sleep(2)실행하면 아래와 같은 오류가 납니다.selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <a href="javascript:goDetail('album','11211297')">...</a> is not clickable at point (40, 24). Other element would receive the click: <span class="ico-sprite ico-gnb-menu">...</span> 구글링 열심히 하다가 챗 gpt에게 물어보니오약 : 메뉴 요소에 가려져있어서 클릭을 못하고, 메뉴 요소를 닫아야 한다고합니다 <span class="ico-sprite ico-gnb-menu">이 메뉴 요소가 문제인거 같은데, 메뉴에 가려져 있으면 어떻게 해결 해야하나요?어떡해든 혼자힘으로 해결해 보려고 하였는데, 이건 도저히 해결책을 어떻게 연구해야 할지 모르겠습니다.도와 주신다면 감사하겠습니다.