묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
title["href"] 가져올 때
import requests from bs4 import BeautifulSoup url = "https://search.naver.com/search.naver?where=view&sm=tab_jum&query=" keyword = input("검색어를 입력하세요: ") url = url + keyword print(url) #개발자 도구 > 네트워크 > www.naver.com > 요청 헤더 > user-gent headers = { "User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, "html.parser") # 게시물별 view 구역 total_area = soup.select(".view_wrap") rank_num= 1 for area in total_area: ad = area.select_one(".link_ad") if ad: continue print(f"<<<{rank_num}>>>") title = area.select_one(".title_area") name = area.select_one(".name") href = area.select_one(".title_link") print(title.text) print(name.text) # print(title["href"] print(href["href"]) print() rank_num += 1 <에러 문구>line 41, in <module> print(title["href"]) File "/User/opt/anaconda3/envs/edu/lib/python3.9/site-packages/bs4/element.py", line 1573, in getitem return self.attrs[key]KeyError: 'href' 안녕하세요, 수업 잘 듣고 있습니다.저도 블로그 링크를 바로 가져오고 싶어서 print(title["href"]로 가져오려 했으나 keyError가 발생합니다. 우선 대안으로, href 변수를 반들고 따로 링크만 가져올 수 있는 코드를 추가하긴 하였으나 왜 키 에러가 발생하여 print(title["href"]로 링크를 바로 못 가져 오는 것인지가 궁금합니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
멜론 : response406
멜론 강의 실습중 계속 406 리스폰스가 뜨는데 우회나 다른방법이없을까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
질문드려요
강의 녹화 시점때와 다르게 현재 뷰 메뉴 태그값들이 모두 바뀐것같아서 강사님 강의에 따라 위 코드를 작성하였는데 v['href']를 사용하면 오류가 나와요...v.select_one('a')['href'] 을 입력하면 #으로 나오고요...확인좀부탁드릴게여.. # 라이브러리 호출 import requests from bs4 import BeautifulSoup # 검색어 입력 search_word = input('검색어를 입력해주세요\t:\t') # 크롤링 페이지 입력 target_url = 'https://search.naver.com/search.naver?where=view&sm=tab_jum&query=' + search_word print(f'접속페이지\t:\t{target_url}') # 데이터 요청 req_get_url = requests.get(target_url) get_html = req_get_url.text parser_soup = BeautifulSoup(get_html, 'html.parser') # select를 활용하여 태그값에 해당하는 모든 값을 리스트화로 가져옴 raw_data = parser_soup.select('div.view_wrap') for index, v in enumerate(raw_data): index += 1 user_data = v.select_one('a.name').text #▶▷▶▷▶▷ 뷰 게시글 작성자 추출 try: #제목 태그를 의미하는 .title_link._cross_trigger 가 None이면, 제목을 의미하는 다른 태그인 .title_link 로 데이터 추출. 그 외 다른 태그값으로 인하여 None 발생을 통한 오류가 생기면 '제목없음'으로 오류 예외처리 진행 title_data = v.select_one('.title_link._cross_trigger').text.replace('\n','').replace('\t',' ') #▶▷▶▷▶▷ 뷰 게시글 제목① 추출 if title_data == None: title_data = v.select_one('.title_link').text.replace('\n','').replace('\t',' ') #▶▷▶▷▶▷ 뷰 게시글 제목② 추출 except: title_data = '제목없음' print(f'{index} 번째글\n사용자명\t:\t{user_data}\n게시글 제목\t:\t{title_data}')
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
zip 메서드를 활용해서 view 제목 및 작성자 불러오기
안녕하세요, 수업 잘 듣고 있습니다. 수업 녹화 당시와 현재와 웹페이지 클래스 명이 달라져서 작성자는 제 생각엔 .user_info 클래스를 사용하는 것 같아 사진과 같이 코드를 작성하고 실행하였으나출력문이 조용(?)합니다. 강의 영상을 보면 게시글 제목과 작성자 명이 함께 나오는데 제 코드는 "검색어를 입력하세요:" 외에 뜨는 출력 문이 없어어떤 것이 문제 인지 문의 드립니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
네이버가 보니까 첫 화면이 리액트로 된 듯 한데요. ㅠㅠ
안녕하세요. 수업 잘 듣고 있습니다.다름이 아니라 네이버가 리액트를 메인에 적용한 듯 한데요혹시 제가 코드를 잘 못 넣은 건지 살펴봐 주실 수있는지요아직 다른 강좌는 듣지 않은 상태인 점 양해 바랍니다.좋은 하루되세요.import requests from bs4 import BeautifulSoup url = "https://naver.com" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } req = requests.get(url, headers=headers) html = req.text soup = BeautifulSoup(html, "html.parser") print(soup.title)
-
미해결[신규 개정판] 이것이 진짜 엑셀자동화다 - 기본편
매출데이터 생성 price 오류
강사님 안녕하세요 :)강의 코드와 똑같이 작성하였는데 if문에서 price가 정의되지않았다고 뜨면서 실행이안되는데 .. 혹시 이유를 알 수 있을까요?
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
네이버 뷰 페이지에서 제목 클래스 print할 때
안녕하세요, 잘 듣고 있습니다. 네이버 view탭 검색 결과 크롤링1을 보고, 따라하고 있습니다. 강사님 녹화하실 당시의 네이버와 현재 네이버 페이지가 구조가 좀 달라져서 제 나름대로 적용을 하려고 했으나 이해가 안되는 부분이 있어 문의 드립니다. 강사님이 쓰신 class명이 현재는 안 쓰이는 듯하여 현재 페이지 기준에 맞춰 class명을 작성한 후 출력을 했는데 '[]' 이렇게 빈 리스트 값이 나타났는데 왜 그런지 모르겠습니다.위 내용이 궁금하여 문의 드립니다.result = soup.select(".title_link.cross_trigger") print(result)
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
쿠팡 크롤링 상품 순서 질문
강의 들으며 똑같이 코드를 작성했습니다.다만, 로캣배송 badge_rocket 까지 작성했을 때, 막상 홈페이지에 나와있는 순위와 비교를 하며 보니 일치하지 않고 순서가 뒤죽박죽 되어 나와 있습니다. 또한 화면 상에서는 광고 표시가 없지만, 막상 html을 살펴보면 search-product search-product__ad-badge라고 되어 있는 경우도 있습니다. 혹 새로고침 할 때 마다 조금씩 바뀌어 제공하는 것 때문에 그런 것인지, 코딩 창과 홈페이지를 동시에 새로고침 해 보아도 순위가 정확하지 않습니다. 이런 상황에서 크롤링이 정확하게 되고 있는 지 어떻게 알 수 있나요?
-
미해결웹 자동화 프로그램 만들기(파이썬 + 셀레니움)
구글드라이버 실행오류
위 코드와 같이 계속 드라이버 에러가 나는데 왜그런가여 ㅜㅜ
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
검색 창??
저 창에 제목 class를 붙여 넣으셔서 옆에 화살표로 막 살펴보시던데, 저는 그런게 없거든여. 혹시 어디서 찾을 수 있는건가여?
-
미해결[신규 개정판] 이것이 진짜 엑셀자동화다 - 기본편
네이버 자동화 실습 관련 질의
Copy Selector를 이용하여 받는사람 구역의 Selector를 복사해서 가져왔으나 코드 실행 중 에러가 발생합니다. no such element라는 것으로 보아 Selector를 못받는거 같은데 어떻게 해야될까요?driver.find_element(By.CSS_SELECTOR,"#recipient_input_element").send_keys("xxxx@naver.com") time.sleep(0.5)Traceback (most recent call last):File "c:\Excel\02. 데스크탑 자동화\2.네이버 로그인 자동화.py", line 44, in <module>driver.find_element(By.CSS_SELECTOR,"#recipient_input_element").send_keys("xxxx@naver.com")^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\thkim\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 742, in find_elementreturn self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\thkim\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 348, in executeself.error_handler.check_response(response)File "C:\Users\thkim\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_responseraise exception_class(message, screen, stacktrace)selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"#recipient_input_element"}(Session info: chrome=120.0.6099.217); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exceptionStacktrace:GetHandleVerifier [0x00007FF675932142+3514994](No symbol) [0x00007FF675550CE2](No symbol) [0x00007FF6753F76AA](No symbol) [0x00007FF675441860](No symbol) [0x00007FF67544197C](No symbol) [0x00007FF675484EE7](No symbol) [0x00007FF67546602F](No symbol) [0x00007FF6754828F6](No symbol) [0x00007FF675465D93](No symbol) [0x00007FF675434BDC](No symbol) [0x00007FF675435C64]GetHandleVerifier [0x00007FF67595E16B+3695259]GetHandleVerifier [0x00007FF6759B6737+4057191]GetHandleVerifier [0x00007FF6759AE4E3+4023827]GetHandleVerifier [0x00007FF6756804F9+689705](No symbol) [0x00007FF67555C048](No symbol) [0x00007FF675558044](No symbol) [0x00007FF6755581C9](No symbol) [0x00007FF6755488C4]BaseThreadInitThunk [0x00007FFA3FB2257D+29]RtlUserThreadStart [0x00007FFA40FEAA58+40]
-
미해결네이버 카페 DB 추출 프로그램 개발 강의 [selenium]
질문있습니다.
query = "강아지옷" userDisplay = 15 option=0 searchBy = 1 # searchdate = "all" # all or 1w encoding_query = parse.quote(query,encoding="MS949") link = f"https://cafe.naver.com/joonggonara?iframe_url=/ArticleSearchList.nhn%3Fsearch.clubid=10050146%26search.media=0%26search.searchdate={searchdate}%26search.defaultValue=1%26search.exact=%26search.include=%26userDisplay={userDisplay}%26search.exclude=%26search.option={option}%26search.sortBy=date%26search.searchBy={searchBy}%26search.searchBlockYn=0%26search.includeAll=%26search.query={encoding_query}%26search.viewtype=title%26search.page={page_idx}"이번 강의는 순서도 바뀐 것 같고 건너띄기 된 느낌입니다..이 부분 내용이 생략이 된 것 같아서요. 저기 link 주소랑 관련된 저 부분들 분석 하는 방법 궁금합니다. 그리고 FLAG 쓰셨는데.. 이해가 잘 안되서요.. 그걸 이용하는 방법을 알려주신 건지.. 저기에 꼭 써야하는건지 잘 이해가 안가네요.if에 break 걸어 놓으셨으니 FLAG를 안 써도 될 것 같아서 여쭤봅니다. ( keyword.py, menu.py 둘 다요)
-
미해결네이버 카페 DB 추출 프로그램 개발 강의 [selenium]
flask 서버에 접속이 안되는데 한 번 봐주세요.
이렇게 나오면서 flask 서버에 접속이 안되네요..어떤 부분을 만져봐야 할까요 ?
-
미해결3분만에 1000명 DB 확보하는 DB 추출기 프로그램 개발 강의 (셀레니움 + pyqt + gui + exe 프로그램)
공개된 이웃이 없을 경우에요
안녕하세요^^공개된 이웃이 없을 경우에다음 블로거로 넘어가지 않고 프로그램이 정지(?) 돼서요.결국엔 사용을 못하네요.공개된 이웃이 없어도 계속 진행돼서 다음 블로거로 넘어가는 방법을 알 수 있을까요? 그리고 이건 수업 질문은 아닌데요.pyinstaller로 exe 만들었는데 윈도우 백신에 바이러스로 잡히더라고요.. 이거 해결 방법은 어디서 찾을 수 있을지 궁금합니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
Coupang a.["href"] 정보 관련 문의
안녕하세요, 쿠팡 크롤링 영상을 보다가 궁금한 점이 있어서 문의드립니다.실습을 위하여 아래와 같이 코드를 입력하였습니다.import requests from bs4 import BeautifulSoup base_url = "https://www.coupang.com/np/search?component=&q=" keyword = input("검색할 상품을 입력하세요 : ") search_url = base_url + keyword headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" } cookie = {"a" : "b"} res = requests.get(search_url, timeout=5 ,headers=headers, cookies=cookie) html = res.text soup = BeautifulSoup(html, "html.parser") items = soup.select("[class=search-product]") print(items[0]) 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"] # link = item.a["href"] print(f"{rank}") print(name.text) print(f"{price}원") print(thumb) print(link) print() rank += 1 그랬더니 아래와 같은 에러가 뜨더라구요.Traceback (most recent call last): File "c:\Users\LG\OneDrive\03. Resources\Python\08_1_coupang.py", line 40, in <module> link = item.a["href"] ~~~~~~^^^^^^^^ File "C:\Users\LG\AppData\Local\Programs\Python\Python312\Lib\site-packages\bs4\element.py", line 1573, in getitem return self.attrs[key] ~~~~~~~~~~^^^^^KeyError: 'href' 그래서 이 검색을 하던 도중에 items 리스트의 첫 번째 데이터를 확인하였습니다.그랬더니, items[0] 내에 'href' 속성이 존재하지 않더라구요.분명 elements에서 검색했을 때는 아래 캡쳐처럼 존재를 하였습니다..왜 이런지 궁금합니다.. <li class="search-product" data-coupon-nudge-text="" data-coupon-tag-area="true" data-freebie-vendor-item-id="null" data-handyman-area="" data-is-rocket="true" data-is-soldout="" data-product-id="7410323525" data-vendor-item-id="86316217055" data-winner-vendor-item-id="86316217055" id="7410323525" > <a class="search-product-link" data-is-soldout="" data-item-id="19198810280" data-product-id="7410323525" data-product-link="/vp/products/7410323525?itemId=19198810280&vendorItemId=86316217055" data-srp-log='{"group":"PRODUCT", "itemId":"19198810280", "productId":"7410323525", "vendorItemId":"86316217055", "page":"1", "listSize":"36", "isCcidEligible":false, "displayCcidBadge":false, "wowOnlyInstantDiscountRate": 9, "snsDiscountRate" : -1, "isLoyaltyMember": false, "hasAsHandymanBadge":false }' data-vendor-item-id="86316217055" target="_blank" ><dl class="search-product-wrap adjust-spacing coupon"> <dt class="image"> <img alt="주연테크 FHD LED 100Hz 모니터, 54.6cm, V22FX(일반)" class="search-product-wrap-img" data-src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" height="230" onerror="this.src='//img2a.coupangcdn.com/image/coupang/common/no_img_1000_1000.png'" onload="logTime(this);logImageLoadTime(this);" src="//thumbnail7.coupangcdn.com/thumbnails/remote/230x230ex/image/retail/images/671217612372165-b6d07ba8-e3fa-4a08-8fba-cb4adbedd0d0.jpg" width="230" /> </dt> <dd class="descriptions"> <div class="descriptions-inner"> <div class="badges"></div> <div class="name"> 주연테크 FHD LED 100Hz 모니터, 54.6cm, V22FX(일반) </div> <div class="price-area"> <div class="price-wrap"> <div class="price"> <span class="price-info"> <span class="instant-discount-rate">2%</span> <del class="base-price"> 91,610 </del> </span> <em class="sale discount isInstantDiscount"> <strong class="price-value">89,000</strong>원 <span class="badge rocket"> <img alt="로켓배송" height="16" src="//image6.coupangcdn.com/image/cmg/icon/ios/logo_rocket_large@3x.png" /> </span> </em> </div> <div class="coupon-wot-nudge-row"> <div class="coupon-wot-nudge-ticket"> <div class="coupon-wot-nudge-ticket_left_border"> <span class="coupon-wot-nudge-ticket_left_border_amount" >8,900</span >원 </div> <div class="coupon-wot-nudge-ticket_right_border"></div> </div> <div class="coupon-wot-nudge-text">와우회원 추가 쿠폰</div> </div> <!-- Free Shipping Badge --> <div class="delivery"> <span class="arrival-info"> <em style="color: #008c00">내일(화) </em> <em style="color: #008c00">도착 보장 </em> </span> </div> </div> <div class="used-product-info"> <span>새 상품</span><span>, </span><span>반품</span ><strong> (9)</strong> <span>최저</span><strong>73,870</strong ><span>원</span> </div> </div> <div class="other-info"> <div class="rating-star"> <span class="star" ><em class="rating" style="width: 90%">4.5</em></span > <span class="rating-total-count">(1188)</span> </div> </div> <div class="benefit-badges"> <div class="reward-cash-badge"> <div class="reward-cash-badge__inr"> <img alt="" class="reward-cash-ico" src="//image6.coupangcdn.com/image/badges/cashback/web/list-cash-icon@2x.png" /> <span class="reward-cash-txt">최대 3,694원 적립</span> </div> </div> </div> </div> </dd> </dl> <span class="number no-1">1 </span> <div class="mask"></div ></a> </li> PS C:\Users\LG\OneDrive\03. Resources\Python>
-
미해결[자동화 완전 정복] 인스타그램 휴대폰, 웹 자동화 프로그램 개발
리스트 추출만 반복
선생님 강의는 잘 듣고있습니다ㅠ제가 아직 초보여서 그런가 이해를 못한건가 싶은데 1.2이후로 추가된 완성본 코드를 실행하면 이런식으로 하루종일 팔로워 리스트만 추출을 하고 있습니다... links.txt 작성완료가 뜨고 끝나야 된다고 생각하는데 팔로워 리스트 추출만 몇시간 켜놔도 계속 추출만하다가 중간에 에러가 뜨면 멈춰버리니 진행이 안되는 상황인데 이거 카운트를 설정해서 몇개만 진행되게 하거나 안될까요? 원래 팔로워 리스트만 계속 추출하는게 맞을까요? 에러뜨고 멈추면 links.txt에 추가도 안되고 진행이 안되서요 한두시간 켜놔도 그렇습니다.글 올리고 좀 더 해보니 포스팅 링크 추출하고 그거만큼 링크를 방문해서 팔로워 리스트를 추출하는거 같은데 자꾸 포스팅 링크 갯수보다 더많은 링크를 방문해서 팔로워 리스트를 추출하려고 시도하는데 혹시 포스팅 링크를 방문하면서 추출한 팔로워 리스트도 또 방문해서 추출을 시도하나요?? 그런식으로 무한루프가 돌아가거나 갯수가 많아져서 오래걸리는거같은데 문제는 중간에 무조건 에러가 한번은 생겨서 끊겨버리는거 같아서요팔로워 리스트 추출 부분을 제거하니 정상작동하네요.. 흠
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
네이버 로고가 없어졌습니다. ^^
선생님 네이버 로고가 없어졌어요... 다른것을 불러오니, 되네요 ^^
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
수업 노트
안녕하세요?라고 했는데 수업 노트는 어디에 있나요?아무리 찾아도 없습니다.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
학습 자료
안녕하세요.수업에 사용하신 코드는 어디서 받을 수 있을까요?
-
미해결3분만에 1000명 DB 확보하는 DB 추출기 프로그램 개발 강의 (셀레니움 + pyqt + gui + exe 프로그램)
제목에 exe 프로그램도 써져있는데 이 내용은 아예 없어서요..
제목에 exe 프로그램도 써져있는데 이 내용은 아예 없어서요..업로드 예정이신지.. 아니면 없는건지 궁금합니다..