묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버 뉴스의 날짜를 수집하고자 합니다.
안녕하세요. FW 시즌 vs SS 시즌별로 피부 고민의 차이를 좀 분석해볼려고 하고요. 네이버 뉴스 크롤링 코드에서 날짜 부문을 추가해서 수집하려고 하는 데 오류가 발생하는 상황입니다. 날짜 HTML은 제대로 불러오는 것 같은데요... 출력에서 조금만 검토해주셨으면 하는 부분이 있습니다. 제가 추가로 작성한 부분은 빨간색으로 색칠해두었습니다. ------------------------------------------------------------------------------------------------------------------------ keyword = pyautogui.prompt("검색어를 입력하세요.") lastpage = pyautogui.prompt("마지막 페이지번호를 입력하세요.") # 엑셀 생성 wb = Workbook() ws = wb.create_sheet(keyword) # 행번호 row = 1 # 열 너비 조절 ws.column_dimensions['A'].width = 60 ws.column_dimensions['B'].width = 60 ws.column_dimensions['C'].width = 120 page_num = 1 for i in range(1, int(lastpage)*10, 10): print(f"{page_num}페이지 크롤링 중입니다.") response = requests.get(f"https://search.naver.com/search.naver?where=news&sm=tab_jum&query={keyword}&start={i}") html = response.text soup = BeautifulSoup(html, 'html.parser') articles = soup.select("div.info_group") # 뉴스 기사 div 10개 추출 for article in articles: links = article.select("a.info") if len(links) >= 2: # 링크가 2개 이상이면 url = links[1].attrs['href'] # 두번째 링크의 href 추출 # 다시 request를 날려 준다 response = requests.get(url, headers={'User-Agent' : 'Mozila/5.0'}) html = response.text soup_sub = BeautifulSoup(html, 'html.parser') # 연예 뉴스 체크 if "entertain" in response.url: title = soup_sub.select_one(".end_tit") content = soup_sub.select_one("#articeBody") date = soup_sub.select_one("div.article_info > span > em") else: title = soup_sub.select_one(".media_end_head_headline") content = soup_sub.select_one("#newsct_article") date = soup_sub.select_one("span.media_end_head_info_datestamp_time._ARTICLE_DATE_TIME") print("=======링크======= \n", url) print("=======제목======= \n", title.text.strip()) print("=======본문======= \n", content.text.strip()) print("=======날짜======= \n", date) # w저장 ws[f'A{row}'] = url ws[f'B{row}'] = title.text.strip() ws[f'C{row}'] = content.text.strip() ws[f'D{row}'] = date.text.strip() # 자동 줄바꿈 기능 ws[f'C{row}'].alignment = Alignment(wrap_text=True) row = row + 1 time.sleep(0.3) # 마지막 페이지 여부 확인하기 isLastPage = soup.select_one("a.btn_next").attrs['aria-disabled'] if isLastPage == 'true': print("마지막 페이지입니다.") break page_num = page_num + 1 # 워드 문서 저장하기 wb.save(f"{keyword}_result.xlsx") ============================================================================================ =======날짜======= <span class="media_end_head_info_datestamp_time _ARTICLE_DATE_TIME" data-date-time="2022-06-05 09:42:02">2022.06.05. 오전 9:42</span>출력이 이렇게되는 데요. 2022.06.05. 오전 9:42만 받아보게끔 하는 방법이 있을까요?
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버 지도 상세주소 크롤링
현재 네이버 지도 크롤링 시도 중인데, 클릭하지 않으면 나오지 않는 가게의 상세 주소까지 크롤링하고 싶습니다 첫 번째 방법으로는 하나씩 누르면서 크롤링하는 방법과 두 번째 방법으로 개발자도구에 script 에 있는 가게 code를 따서, url에 넣어서 결합한 뒤 새로 코드를 짜서 반복문으로 돌려서 상세 주소를 가져오는 방법을 생각 중입니다 제 생각에는 2번이 수월할 것 같아 하려고하는데, 아래와 같이 script라는 것 아래에 json 형태로 저장되어 있는 것 같습니다 다만, 제 실력이 미숙하여 어떤 방식으로 입력해도 잘 못따오는데 가게 코드를 따오기 위해 혹시 참고할 강의나.. 방법이 있을까요!? 현재 하고 있는 코드는 아래와 같으며, 첫번째 방법도 가능할지 선생님께 조언 구해봅니다 from selenium.webdriver.common.keys import Keys from selenium import webdriver import time import openpyxl from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By wb = openpyxl.Workbook() ws = wb.create_sheet("1페이지") ws.append(["순위","이름","방영일","프로그램"]) browser.get("https://pcmap.place.naver.com/restaurant/list?query=%EB%A7%9B%EC%9E%88%EB%8A%94%EB%85%80%EC%84%9D%EB%93%A4%20%EB%A7%9B%EC%A7%91&x=127.510209&y=36.5851932&bounds=125.8897257%3B35.304463%3B131.3279581%3B37.8016307&isCurrentLocationSearch=true&tvProgram=false&x=128.4255012&y=36.254532&ts=1644222834366&mapUrl=https%3A%2F%2Fmap.naver.com%2Fv5%2Fsearch%2F%25EB%25A7%259B%25EC%259E%2588%25EB%258A%2594%25EB%2585%2580%25EC%2584%259D%25EB%2593%25A4%2520%25EB%25A7%259B%25EC%25A7%2591%3Fc%3D14194371.5368239%2C4381444.7119141%2C7%2C0%2C0%2C0%2Cdh#") browser.implicitly_wait(10) wait = WebDriverWait(browser, 10) # element = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@id='_pcmap_list_scroll_container']"))) element.click() #로딩된 데이터 개수 확인 lis = browser.find_elements_by_css_selector("li._1EKsQ._12tNp") before_len = len(lis) while True: #맨 아래로 스크롤 내린다 browser.find_element_by_css_selector("body").send_keys(Keys.END) #스크롤 사이 페이지 로딩 시간 time.sleep(2) #스크롤 후 로딩된 데이터 개수 확인 lis = browser.find_elements_by_css_selector("li._1EKsQ._12tNp") after_len = len(lis) #로딩된 데이터 개수가 같다면 반복 멈춤 if before_len == after_len: break before_len = after_len # 데이터 기다리는 시간을 0으로 만들어 줘요. (데이터가 없더라도 빠르게 넘어감) browser.implicitly_wait(0) rank = 1 for li in lis: #광고 상품 아닌 것만 if len(li.find_elements_by_css_selector("svg._2ulu3")) == 0: #별점이 있는 가게만 크롤링 if len(li.find_elements_by_css_selector("span._2FqTn._1mRAM>em")) > 0: #가게명 name = li.find_element_by_css_selector("span.OXiLu").text # 프로그램 program = li.find_element_by_css_selector("div._1fp5H._1tGBC > div").text #방영일 star = li.find_element_by_css_selector("div._3hn9q > div > a").text print(rank, name, star, program) ws.append([rank, name, star, program]) rank = rank + 1 wb.save("1페이지.xlsx")
-
미해결
소셜 로그인 쉽게 붙이는법
카카오나 네이버같이 소셜 로그인 연동 관련해서 도움 받을 수 있을 만한 곳 있을까요?? SNS 로그인 API 관련 강의는 없네요ㅠㅠ
-
미해결
angular 네이버 분석스크립트 설치해보신분 조언 구합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 앵귤러에서 네이버 분석 스크립트를 설치하려 하는데 SPA이다 보니 한 페이지로만 인식되서 도저히 읽히지를 않네요. 네이버 측에서도 SPA관해서는 가이드를 따로 주지않네요 ㅠㅠ index.html에 공통 스크립트를 설치했고, 나머지 페이지 이동이 될때 읽히 지가 않네요. 해보신 분 계시면 꿀팁있을까요.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
윈도우 서버를 보통 어디 클라우드에 올려야 하나요?
혹시 강의 추가로 아마존이나 네이버 클라우드에 서버 올리는걸 알려주실 수 있을까요:?? 보통 비용은 한달에 얼마 나오는지 유저가 하루에 100명정도 동접한다 그럴때 계산을 어떻게 할 까요? 패킷당 해야할 것 같은데 강사님 경험을 토대로 말씀해주실 수 있나요?
-
미해결
네이버에서 이런 오류가 떴습니다.
어느 사이트의 카테고리를 들어갈 때마다 화면이 이상해져서 아는 분ㄴ께 여쭤보니 저런 화면이 뜬 것을 확인하였습니다. 이경우엔 어떻게 해결해야하나요? 아니 애초에 제가 해결할 수 있긴 한가용?