묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
멜론 사이트 수집부터 안됩니다
위와 같이 입력했는데 soup 출력값이 전혀 안나와서 len 으로 확인해보니 0로 나오네요. 혹시나 해서 언론사 사이트 주소로 바꿔봤는데 html 정보 정상적으로 받아오는건 확인 했어요 강의 시점이랑 멜론 사이트가 뭐가 바뀐건지앞 강의에서 네이버 부터 막혀서 해결되기전에 먼저 보려고 했는데 또 바로 막히네요...
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
강의 시점이랑 현재랑 네이버 사이트 변화가 많은거 같아서 질문드립니다.
네이버 뷰탭 실습부터 막혔는데요 지금은 뷰탭이 없어서 블로그 탭으로 대체해서 보고 있습니다.네이버 사이트가 전체적으로 강의 시점이랑 html 구조가 많이 다른것 같아요그리고 어떤 선택자를 선택해도 결과 출력이 되지 않길래 html를 출력해봤는데 검색 결과 자체가 안나오는 것 같더라구요 이 결과는 User Agent 를 지정하지 않았을 때 결과구요 위와 같이 User Agent를 적용하면 결과가 400 Bad Request로 떠요 url 프린트 해서 나오는 링크로는 검색결과로 제대로 접속되고 있어요왜 이런건지 알 수가 없어서 질문드립니다.시작부터 막히니 막막하네요 ㅠㅠ
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
-href 가져오기
현재까지 잘 따라왔는데 href 에서 막혀서 질문드립니다. 현재 네이버의 span class에서 제목은 가져왔습니다. 그런데 href는 윗 단계인 <a>에 있지만 class명이 복사하면 깨져서 나옵니다. 그래서 <a> 에 있는 href를 가져오지 못하고 있습니다. 더 한단계 위인 <div>를 사용해 보았지만 href는 불러오지 못했습니다.+++++++++++++++++++++++++<div class=“”> <a nocr=“1” href=“…..” <span class=“………”>기사제목</span> </a>++++++++++++++++++++++++++어떤 방법이 있는지 문의드립니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
수업내용 프로젝트의 완성된 코드는 제공이 안돼나요?
학습은 예전에 마쳤습니다. 내용 꽉꽉 채워진 훌륭한 강의 감사합니다.그런데, 수업내용 프로젝트의 완성된 코드는 제공이 안되는지 궁금합니다. 압축파일로 제공된다던지 github 리파지토리를 통해 제공이 된다던지...이 곳에서 답변이 어렵다면 jinwelcome1015@gmail.com 메일로라도 답변 부탁드립니다. 이상입니다. 감사합니다~
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
안녕하세요 쿠팡 크롤링 막힌거 같아요 3번돌리니깐 막았어요 해결방법없을까요?
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다.문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다.코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다.답변은 바로 제공되지 않을 수 있습니다.실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
쿠팡 BeautifullSoup 헤더넣어도 막히네요
headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36', "accept-language": "ko,en-US;q=0.9,en;q=0.8", "accept-encoding" : "gzip, deflate, br, zstd", "cache-control" : "max-age=0" } 위와 같이 헤더를 넣어도....타임아웃으로 나오지 않더라구요이제는 헤더만으로는 못할 거 같은데 셀레니움 외 방법이 없을까요 ㅠㅠ
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
네이버 쇼핑 크롤링 1 코드 사용 시, 접속 제한됐을 때의 해결 방법이 궁금합니다.
import requests from bs4 import BeautifulSoup keyword = input("검색할 상품을 입력하세요 : ") url = f"https://search.shopping.naver.com/search/all?&query={keyword}" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" headers = {"User-Agent" : user_agent} req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, "html.parser") print(soup)위 코드 사용 시 아래와 같은 결과가 나타납니다.keyword = input("검색할 상품을 입력하세요 : ") url = f"https://search.shopping.naver.com/search/all?&query={keyword}" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" headers = {"User-Agent" : user_agent} req = requests.get(url, headers=headers) # req = requests.get(url, headers=headers) # print(req.request.headers) html = req.text soup = BeautifulSoup(html, "html.parser") print(soup)<title>네이버쇼핑</title></head><body><div class="content_error"><div class="head">쇼핑 서비스 접속이 일시적으로 제한되었습니다. </div><div class="desc">네이버는 안정적인 쇼핑 서비스 제공하고자 시스템을 통해 아래와 같은 비정상적인 접근이 감지될 경우 해당 네트워크의 접속을 일시적으로 제한하고 있습니다.</div><ul class="reason"><li>상품 구매, 탐색과 무관한 외부 이벤트를 통한 접속</li><li>짧은 시간 내에 너무 많은 요청이 이루어진 IP</li><li>VPN을 사용하여 접속한 IP</li><li>특정 확장 프로그램 이용 시</li></ul><div class="footer">위와 같은 접근이 아님에도 접속이 제한된 경우,네이버앱을 업데이트 또는 <a href="https://help.naver.com/service/30016/category/5278" target="_blank"> 원클릭 진단</a>을 부탁드립니다.<br/> 해당 방법을 통해서도 접속이 불가한 경우 <a href="https://help.pay.naver.com/mail/form.help?alias=shopping_stop" target="_blank">네 이버쇼핑 고객센터</a>로 문의 부탁드립니다.</div></div></body></html>이런 상황에서 대안이 있을까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
추가 강의 업데이트 있나요?
안녕하세요. 강의 잘 보고 있습니다.이제 강의는 모두 업데이트 완료된 건가요?네이버 부동산 매물도 크롤링으로 자동화 하고 싶은데 혹시 강의로 만드실 계획은 있으신가요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
lambda 중에 문의가 있습니다.
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다.문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다.코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다.답변은 바로 제공되지 않을 수 있습니다.실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다.최대한 구글링을 동원해서 해보는 중인데 막히네요.모니터링 가서 로그 나오는것 까지 확인 했습니다. event, message, text 이렇게 표시 되는거요.def lambda_handler(event, context): result = json.loads(event["body"]) print(f"event : {event}") keyword = result["message"]["text"] news_crawler(keyword) 그다음 위의 코드 작성하고 run을 해보면 아래와 같이 body 키 문제가 있다고 나옵니다.무슨문제일까요...ㅜ"errorMessage": "'body'", "errorType": "KeyError", "requestId": "628cac7e-f4ae-41f3-9ba3-ba7a3e7f464f", "stackTrace": [ " File \"/var/task/lambda_function.py\", line 59, in lambda_handler\n result = json.loads(event['body'])\n"
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
텔레그램 sendMessage 시 400에러가 뜹니다.
message = input("message: ") data = {"chat_id":chat_id, "text":message} url = f"http://api.telegram.org/bot{bot_token}/sendMessage" res = requests.get(url, data=data) print(res) if res.status_code == 200: print(json.loads(res.text)) 위처럼 작성하고 실행해보면 response 400에러가 발생합니다. getUpdate 메서드는 정상실행이 되는데 뭐가 문제인지 모르겠습니다....url 공백이 있으면 400에러가 발생한다고 검색은 해봤는데 , 전 공백도 없는것 같고.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
ftp 로긴 문제입니다. ㅜ
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다.문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다.코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다.답변은 바로 제공되지 않을 수 있습니다.실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다.쿠팡 아이템 리스트를 html로 작성해서 호스팅 주소에 올리는 과정입니다. 파이썬 파일 돌리면 로그인 과정에서 실패합니다. 주소 id pw는 제대로 입력한 것 확인 했는데 무엇이 문제인지 알려주세요...
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
네이버 쇼핑 크롤링 질문입니다.
네이버 쇼핑 크롤링 1 강의를 수강하고 있습니다. 네이버 쇼핑 페이지에서 상품에 대한 태그를 추출함에 있어서 items에 데이터가 전혀 저장되지 않습니다. 코드도 완전히 동일한 것 같은데 어떤 문제가 있는 걸까요? from bs4 import BeautifulSoup import requests keyword = input("검색할 제품을 입력하세요 : ") url = f"https://search.shopping.naver.com/search/all?query={keyword}" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" headers = {"User-Agent" : user_agent} req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, 'html.parser') items = soup.select(".adProduct_item__1zC9h") print(items) print(len(items)) 다음과 같이 []와 0만 출력되는 상황입니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
XPATH 네이버에서 카페 찾는 과정 문의입니다.
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다.문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다.코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다.답변은 바로 제공되지 않을 수 있습니다.실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다.네이버에서 뉴진스 검색하면 view 탭이 없어서 카페 탭으로 대신 이동해보려고 합니다. XPATH 사용해서 카페로 이동할 때 >>"//*[text()='카페']"<< 이 방식을 사용하려고 하는데요 웹에서 '카페' 키워드 검색하면 텍스트가 6개 나옵니다. 원하는 요소 text가 여러개 있는 경우 어떻게 찾아나가는지 궁금합니다. 아래와 같이 해봤는데 안되었어요. driver.find_elements(By.XPATH, "//*[text()='카페']")[3].click()
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
셀레니움 By.XPATH 를 이용한 키워드 입력 작성 질문입니다.
By.XPATH를 이용한 태그 선택과 키워드 입력 방법 강의를 들었는데요. 강의에서 말씀하신대로 코드를 작성하였는데 키워드가 검색창에 입력이 되지 않습니다. 개발자도구에서 확인한 네이버 검색란 태그를 다음과 같이 확인하였습니다. 제가 입력한 코드는 아래와 같습니다. from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from webdriver_manager.chrome import ChromeDriverManager import time options = Options() options.add_argument("--start-maximized") options.add_experimental_option("detach", True) service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=options) url= "https://naver.com" # 요소 선택하는 법 # # driver.find_element(By.CLASS_NAME) # driver.find_element(By.ID) # driver.find_element(By.CSS_SELECTOR) # driver.find_element(By.NAME) # driver.find_element(By.TAG_NAME) # driver.find_element(By.XPATH) # driver.find_element(By.LINK_TEXT) # driver.find_element(By.PARTIAL_LINK_TEXT) driver.get(url) time.sleep(2) """ <input id="query" name="query" type="search" title="검색어를 입력해 주세요." placeholder="검색어를 입력해 주세요." maxlength="255" autocomplete="off" class="search_input" data-atcmp-element=""> """ driver.find_element(By.XPATH, '//input[@title="검색어를 입력해주세요."]').send_keys("박효신")
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
쿠팡 이미지 파일 다운받기에서 동일하게 코드 작성 후 요청하였지만 파일 다운로드가 안됩니다.
쿠팡 상품 썸네일 전체 다운받기 강의에서동일하게 코드 작성 후 실행하였지만, 다른 크롤링 정보는 정상작동하지만, 파일이 지정된 폴더로 다운이 되지 않습니다. <작성한 코드>import requests from bs4 import BeautifulSoup base_url = "https://www.coupang.com/np/search?component=&q=" keyword = input("검색할 상품을 입력하세요 : ") url = base_url + keyword headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" } cookie = { "a" : "b" } req = requests.get(url, timeout=5, headers=headers, cookies=cookie) html = req.text soup = BeautifulSoup(html, "html.parser") items = soup.select("[class=search-product]") 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'] print(f"{rank}위") print(item["class"]) print(name.text) print(f"{price.text} 원") print(f"https://www.coupang.com{link}") # print(thumb) if thumb.get("data-img-src"): img_url = f"http:{thumb.get('data-img-src')}" else: img_url = f"http:{thumb['src']}" print(img_url) print() img_req = requests.get(img_url) with open(f"07_coupang/{rank}.jpg", "wb") as f: f.write(img_req.content) rank+=1 키워드는 '노트북'이고, 저장하려는 폴더 이름은 07_coupang, 위치는 "C:\project\Webcrawling\07_coupang" 입니다.어떤 것이 문제일까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
파이썬에 키워드를 치는게 아닌...
안녕하세요 초보입니다.파이썬에 키워드를 안치고 주기적으로 뉴스 등을 크롤링하여 텔레그램으로 보낼수도 있을까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
50프로 수강중입니다~
현재 50프로 수강을 하면 진짜 많은 도움 받고 있습니다. 감사합니다.네이버 플레이스를 크롤링하려다 보니 json형태로 정보를 받을 수 있더라고요.이런 경우는 어떻게 크롤링하고 파싱하는지 알 수 있을까요?...
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
제품 링크를 타고 들어가야 원하는 정보가 나오는 사이트
from selenium import webdriver from selenium.webdriver.chrome.options import Options # from selenium.webdriver.chrome.service import Service # from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import requests from bs4 import BeautifulSoup import time options = Options() user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" options.add_argument(f"user-agent={user_agent}") options.add_experimental_option("detach", True) driver = webdriver.Chrome(options=options) url = "https://kream.co.kr/search?shop_category_id=34" driver.get(url) time.sleep(2) for i in range(1): driver.execute_script("window.scrollTo(0, document.body.scrollHeight)") time.sleep(2) html = driver.page_source soup = BeautifulSoup(html, "html.parser") items = soup.select(".product_card") for item in items: brand = item.select_one(".product_info_brand.brand") name = item.select_one(".translated_name") link = item.select_one(".item_inner").attrs['href'] click = name.text driver.find_element(By.PARTIAL_LINK_TEXT, click).send_keys(Keys.CONTROL+Keys.ENTER) time.sleep(1) driver.switch_to.window(driver.window_handles[-1]) html = driver.page_source soup2 = BeautifulSoup(html, "html.parser") model_num = soup2.select_one("div:nth-child(3) > div.product_info") print(brand.text.strip()) print(name.text) print(model_num.text.strip()) print(f"https://kream.co.kr{link}") print() driver.close() driver.switch_to.window(driver.window_handles[0]) 아무것도 모르는 상태에서 시작했는데 좋은 강의 올려주신 덕분에 크롤링을 조금이나마 맛보게 된 것 같습니다. 어설프게나마 완성은 한거 같은데 궁금한게 있어서 질문 남깁니다.상품 링크를 타고 들어가야 원하는 정보를 긁어올 수 있는 사이트인데, 자바스크립트로 동작하게끔 되어 있습니다.시행착오 끝에 셀레니움으로 동작을 시켜봤는데제품 하나하나마다 새창을 열어서 정보를 가져온 후에 창을 닫고.. 다시 새창을 열어서 정보를 가져온 후에 창을 닫고..하다보니 시간도 너무 오래 걸리고 이렇게 하는게 맞는 건지 의구심이 듭니다.어떻게 해야 속도를 높힐 수 있을까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
lst = lst50 + lst100 이거 대신에
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/125.0.0.0 Safari/537.36" } url = "https://www.melon.com/chart/index.htm" req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, "html.parser") lst50 = soup.select(".lst50") lst100 = soup.select(".lst100") # lst = lst50 + lst100 if lst50: lst = lst50 elif lst100: lst = lst100 else: print("!!!!!!!!!!!!!") # 자식선택자 > 는 바로 밑에 있을 때만 가능. 바로 밑에 있는게 아닐 때는 그냥 한칸 띄고 입력! for i in lst: title = i.select_one(".ellipsis.rank01 a") singer = i.select_one(".ellipsis.rank02 > a") album = i.select_one(".ellipsis.rank03 > a") print(title.text) print(singer.text) print(album.text) print() # for rank, i in enumerate(lst50, 1): # title = i.select_one(".ellipsis.rank01 a") # print(f"{rank} : {title.text}") # print() print(len(lst)) lst = lst50 + lst100 대신에 앞 시간에 설명해주셨던 if, elif, else 를 사용해봤는데 데이터가 50개만 나오는데, 왜 100개가 다 안나오는 건가요? 무슨 차이가 있는건지 궁금합니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
증권, 메일 등 서비스 목록을 못가져와요 ㅠㅠ
네이버 메인 화면에서 증권, 메일 등 서비스 목록을 못가져와요 ㅠㅠ클래스를 여러가지로 바꿔도 아래와 같이 none로 안나오는데 도움주시면 감사하겠습니다. import requests from bs4 import BeautifulSoup url = "https://www.naver.com" print(url) headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36" } req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, "html.parser") print(soup.title) # 아래 3개 모두 h1 태크 하나를 가져오는 똑같은 결과가 나온다. 즉 방법이 여러가는 라는 말이다. #방법1 print(soup.h1) #방법2 h1 = soup.find('h1') print(h1) #방법3 h1 = soup.select_one('h1') print(h1) # find로 찾을 때 id는 id = 으로 넣고, class는 class_ 이렇게 언더바 넣어야 함 # class에 언더바를 넣는 이유는 class가 파이썬에 예약어로 등록되어 있기 때문이다. h1 = soup.find(class_="search_logo") print(h1) h1 = soup.find(id="special-input-logo") print(h1) service_name = soup.find(class_="service_name", string="증권") print(service_name) shortcut_item = soup.find(class_="shortcut_item", string="증권") print(shortcut_item) link_service = soup.find(class_="link_service", string="증권") print(link_service) shortcut_list = soup.find(class_="shortcut_list") print(shortcut_list) """출력값 https://www.naver.com <title>NAVER</title> <h1 class="search_logo" id="special-input-logo"></h1> <h1 class="search_logo" id="special-input-logo"></h1> <h1 class="search_logo" id="special-input-logo"></h1> <h1 class="search_logo" id="special-input-logo"></h1> <h1 class="search_logo" id="special-input-logo"></h1> None None None None"""