묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
에러??
import os import openai openai.api_key = "내꺼 api key 가림" completion = openai.ChatCompletion.create( model = "gpt-3.5-turbo", messages=[{"role": "user", "connect": "Hello"}]) print(completion.choices[0].message) Traceback (most recent call last): File "C:\Users\82109\PycharmProjects\10.selenium_option\venv\openai_test.py", line 5, in <module> completion = openai.ChatCompletion.create( model = "gpt-3.5-turbo", messages=[{"role": "user", "connect": "Hello"}]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\82109\PycharmProjects\10.selenium_option\venv\Lib\site-packages\openai\api_resources\chat_completion.py", line 25, in create return super().create(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\82109\PycharmProjects\10.selenium_option\venv\Lib\site-packages\openai\api_resources\abstract\engine_api_resource.py", line 153, in create response, _, api_key = requestor.request( ^^^^^^^^^^^^^^^^^^ File "C:\Users\82109\PycharmProjects\10.selenium_option\venv\Lib\site-packages\openai\api_requestor.py", line 226, in request resp, got_stream = self._interpret_response(result, stream) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\82109\PycharmProjects\10.selenium_option\venv\Lib\site-packages\openai\api_requestor.py", line 620, in _interpret_response self._interpret_response_line( File "C:\Users\82109\PycharmProjects\10.selenium_option\venv\Lib\site-packages\openai\api_requestor.py", line 683, in _interpret_response_line raise self.handle_error_response( openai.error.InvalidRequestError: Additional properties are not allowed ('connect' was unexpected) - 'messages.0' Process finished with exit code 1 위는 에러 메시지 입니다.
-
해결됨[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
03. 연예뉴스크롤링하기에 질문 있습니다.
import requests from bs4 import BeautifulSoup import time response = requests.get( "https://search.naver.com/search.naver?where=news&sm=tab_jum&query=%EB%B8%94%EB%9E%99%ED%95%91%ED%81%AC") 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를 추출 response = requests.get(url, headers={'User-agent':'Mozila/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') # 만약 연예 뉴스라면 if "entertain" in response.url: title = soup.select_one(".end_tit") content = soup.select_one("#articleBody") else: title = soup.select_one(".media_end_head_headline") content = soup.select_one("#dic_area") print("====링크====", url) print("====제목====", title.text.strip()) print("====본문====", content.text.strip()) time.sleep(0.3) 위와 같이 코드를 짜고 실행했는데,https://entertain.naver.com/read?oid=629&aid=0000209267이사이트 차례가 되자 content를 못 뽑아냅니다.다음과 같은 에러를 나타냅니다.====링크==== https://n.news.naver.com/mnews/article/629/0000209267?sid=106 ====제목==== 블랙핑크 지수, 요란하지 않은 '꽃'의 유혹[TF초점] Traceback (most recent call last): File "C:\Users\asd20\Desktop\startcoding_crawling\Chapter04\03.연예뉴스크롤링하기.py", line 27, in <module> print("====본문====", content.text.strip()) AttributeError: 'NoneType' object has no attribute 'text' 개발자도구를 눌러 html 구조를 확인해봐도 원인을 잘 모르겠습니다.
-
해결됨[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버 일반 뉴스 페이지의 HTML이 변경된것 같습니다.
import requests from bs4 import BeautifulSoup response = requests.get( "https://search.naver.com/search.naver?where=news&sm=tab_jum&query=%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90") 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를 추출 response = requests.get(url, headers={'User-agent':'Mozila/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') content = soup.select_one("#articleBodyContents") print(content.text)본문 내용의 ID가 articleBodyContents아닙니다.그래서 "#dic_area"로 생각해서,변경하고 진행했는데, 강사님처럼 전체 텍스트가 출력되는게 아니라 일부만 출력됩니다.전체 텍스트를 볼려면 어떻게 해야하나요?
-
미해결Node.js로 웹 크롤링하기
앱 크롤링
수업 잘듣고 있습니다교육내용가 관련없지만웹말고 앱 크롤링이 가능한가요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
selenium 명령어 자동완성 안됨
vscode 사용하고 있습니다.코딩과 실행 모두 문제는 없으나selenium 관련 명령 입력할때는 김플님 강의화면과 달리 자동완성 기능이 작동하지 않습니다.예를 들어, options = Options()options.까지 입력하면 여러가지가 나오고 그 중 add_experimental_option 이 떠야되는데 그렇지 않아 매번 직접 타이핑하고 있습니다.해결방법이 있을까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
다음 카페 크롤링
다음 카페 크롤링을 이 강의를 통해 하고 있습니다.다음 카페 로그인 및 해당 게시판 까지는 이동이 되는 데, 해당 글 내용에 대한 크롤링이 되지 않습니다(Xpath나 class를 이용해도 게시글이 클릭도 안되는데 그 이유가 궁급합니다.ㅠㅠ / )<a href="/_c21_/bbs_read?grpid=5RFF&fldid=Acvb&contentval=002Lizzzzzzzzzzzzzzzzzzzzzzzzz&datanum=9034&page=1&prev_page=0&firstbbsdepth=&lastbbsdepth=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz&listnum=20" class="txt_item">심한 자폐아이 </a>여기 안에 있는 내용을 가지고 오고 그 아래 부분의 글로 가지고 오려고 합니다...
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
for문에서 창 전환 후 에러 해결 방법 문의
from selenium import webdriver # webdriver 불러오기 from selenium.webdriver.chrome.options import Options # 브라우저 닫힘 방지 from selenium.webdriver.chrome.service import Service # 크롬드라이버 다운로드(새로운 버전 다시 받을 필요 없음) from webdriver_manager.chrome import ChromeDriverManager # 크롬드라이버 다운로드(새로운 버전 다시 받을 필요 없음) import time import pyautogui from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys options = Options() options.add_experimental_option('detach', True) # 브라우저 바로 닫힘 방지 options.add_experimental_option('excludeSwitches', ['enable-logging']) # 불필요한 메시지 제거 service = Service(ChromeDriverManager().install()) #service = Service(ChromeDriverManager().install()) 이 부분을 # ChromeDriverManager(path="원하는 경로") 이렇게 사용하면 원하는 곳에 # 크롬드라이버를 다운로드하게 됩니다. driver = webdriver.Chrome(service=service, options=options) driver.get("https://www.g2b.go.kr:8101/ep/tbid/tbidFwd.do") time.sleep(2) search_click = driver.find_element("#bidNm").click() keyword = pyautogui.prompt("<<<검색어를 입력하세요 >>>") search_keyword = driver.find_element(By.CSS_SELECTOR,"#bidNm").send_keys(keyword) output_num = driver.find_element(By.CSS_SELECTOR,"#recordCountPerPage").click() output_num_select = driver.find_element(By.CSS_SELECTOR,"#recordCountPerPage > option:nth-child(5)").click() search_btm_click = driver.find_element(By.CSS_SELECTOR,"#buttonwrap > div > a:nth-child(1)").click() bid_infors = driver.find_elements(By.CSS_SELECTOR,"tbody tr") for bid in bid_infors : title = bid.find_element(By.CSS_SELECTOR,"td:nth-child(4) > div > a").text link = bid.find_element(By.CSS_SELECTOR,"td:nth-child(4) > div > a").get_attribute('href') client = bid.find_element(By.CSS_SELECTOR,"td:nth-child(5) > div").text print("공고명 : ", title) print("주소 : ", link) print("발주처 : ",client ) print() # 사전규격 크롤링 driver.get("https://www.g2b.go.kr:8081/ep/preparation/prestd/preStdSrch.do") time.sleep(2) keyword2 = pyautogui.prompt("<<<검색어를 입력하세요 >>>") search_keyword2 = driver.find_element(By.CSS_SELECTOR,"#prodNm").send_keys(keyword2) output_num2 = driver.find_element(By.CSS_SELECTOR,"#recordCountPerPage").click() output_num2_select2 = driver.find_element(By.CSS_SELECTOR,"#recordCountPerPage > option:nth-child(5)").click() search_btm_click2 = driver.find_element(By.CSS_SELECTOR,"#frmSearch1 > div.button_wrap > div > a:nth-child(1)").click() bid_infors2 = driver.find_elements(By.CSS_SELECTOR,"tbody tr") for bid2 in bid_infors2: title2 = bid2.find_element(By.CSS_SELECTOR, "td:nth-child(4) > div > a").text client2 = bid2.find_element(By.CSS_SELECTOR, "td:nth-child(5) > div").text link_click = bid2.find_element(By.CSS_SELECTOR, "td:nth-child(4) > div > a").click() time.sleep(2) link2 = driver.current_url print("공고명 : ", title2) print("주소 : ", link2) print("발주처 : ",client2) print() driver.back() time.sleep(2) 위 코드에서 발생하는 코드는 아래와 같습니다. Traceback (most recent call last): File "c:\coding\나라장터크롤링\1.입찰공고크롤링.py", line 61, in <module> title2 = bid2.find_element(By.CSS_SELECTOR, "td:nth-child(4) > div > a").text File "C:\Users\landj\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webelement.py", line 425, in find_element return self._execute(Command.FIND_CHILD_ELEMENT, {"using": by, "value": value})["value"] File "C:\Users\landj\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webelement.py", line 403, in _execute return self._parent.execute(command, params) File "C:\Users\landj\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 440, in execute self.error_handler.check_response(response) File "C:\Users\landj\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 245, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document이것 저것 다해봐도 안되네요...해결 방법을 알려주시면 감사하겠습니다.
-
해결됨[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
자바스크립트로 된 링크 가져오는 방법이 궁금합니다.
토요코인 수업 중에 위에 보는 것과 같이 자바스크립트로 링크가 걸려있는 경우 실제 url을 크롤링 하려면 어떻게 해야 하나요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
PermissionError: [WinError 5] 액세스가 거부되었습니다
안녕하세요 강의에서 알려주신 내용 바탕으로 해보고 있는데 어느순간부터 'PermissionError: [WinError 5] 액세스가 거부되었습니다' 라는 메세지가 나옵니다.해당 메세지가 가르키는 줄을 보면 아래 코드중 service 부분에서 발생합니다. 어떻게 하면 수정할수있을지 도움말씀 부탁드립니다.service = Service(executable_path=ChromeDriverManager().install()) browser = webdriver.Chrome(service=service, options=chrome_options)
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
크롤링 관련하여 질문드립니다.
안녕하세요 강사님, 유튜브 강의 너무 잘 보고 좀 더 강사님의 강의를 통해 파이썬 배워보고자 인프런 수강하게 된 학생입니다.크롤링 관련하여 강의나 유튜브 영상을 찾아봐도 접하기 힘든 유형인 듯 하여 질문드립니다. 위와 같이 흔히 접할 수 있는 가격 비교 사이트(D사, E사 등) 에서 카드할인가 포함과 같은 체크박스 선택을 하여 정보를 추출하고자 할 경우 어떻게 해야하나요? 기존 강의에서 접한 사이트와는 다르게 크롤링이 제한되는 듯 하여 질문드립니다...
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
손흥민 키워드를 입력하여도, 링크 생성안되는 현상
이전 질문에 대해서 너무나도 빠른 답변 감사합니다.해결되었습니다.어떻게 해결책을 찾으셨나요?쿠팡 part빼고 완강했는데, 다 들어보겠습니다.다른 질문이 있습니다.손흥민을 input값을 받아도 단순하게 더해서는 하이퍼링크된 url이 형성되지 않습니다.저는 quote_plus를 사용해서 해결했는데,강사님은 어떻게 해서 단순하게 더해서 하이퍼링크된 url이 완성될까요?
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
스케줄러 사용 관련 질문 드립니다
작성한 파이썬 코드(웹 크롤링)를 매일 정해진 시간에 실행하려 합니다스케줄러를 사용하면 된다 구글링에 나왔는데요 어떤 식으로 사용하면 되는지 감이 안 와서 질문 드려요. 작성한 파이썬 코드 앞에 스케줄러 코드를 붙이면 되나요? 아니면 작성한 파이썬 파일을 불러와서 사용하는 방식으로 해야 하나요? 답변 부탁 드립니다.
-
미해결파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기
selenium 에러
안녕하세요, selenium을 사용해 파싱을 할 때, 예제처럼 'id'가 아닌 'div class'를 넣으면 다음과 같은 문법 에러가 발생 합니다. 해결책은 무엇이 있을까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
무비차트 모든 영화의 예매율, 개봉 날짜등 기타 정보 모두 가져오기 과정 중 질문입니다.
from bs4 import BeautifulSoup import requests url = "http://www.cgv.co.kr/movies/?lt=1&ft=0" headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" } r = requests.get(url, headers=headers).text soup = BeautifulSoup(r, "html.parser") charts = soup.select("div.sect-movie-chart > ol > li") print(len(charts)) # Output : 20 ?? for chart in charts: title = chart.select_one("strong.title").text percent = chart.select_one("strong.percent").get_text print(title) print(percent(" : "))무비차트 페이지에 보여지는 갯수도 19개고, 개발자 도구에서 li를 세어봐도 19개인데len()으로 보면 20개가 나오고, for 문으로 코드를 실행시키면 19번째까지 제목과 예매율 출력하고 20번째에서 에러 문구가 발생합니다.어떤 부분을 찾아보면 될까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
쿠팡 크롤링
강사님의 훌륭한 강의력에 감탄하며 쿠팡 크롤링을 제외한 부분은 다 들었습니다. 감사합니다.쿠팡 크롤링 파트에 질문이 있습니다.3월27일 기준으로 위 방법이 막힌것같습니다.다른 방법을 찾으려고 했지만, 셀레니움 밖에 찾지 못했습니다.뷰티풀숩을 이용한 해결책은 없나요?
-
미해결남박사의 파이썬 기초부터 실전 100% 활용
텔레그램 봇 만들기 코드 실행이 안됩니다 박사님..ㅠ
안녕하세요, 좋은 강의 보고 따라하면서 학습중입니다.좋은강의 정말 감ㅅㅏ드립니다..지금 텔레그램 봇 만들기 - 날씨 / 환율 응답, 컴퓨터 파일전송 기능 강의를 수강중입니다. /dir [대상폴더] 는 잘 구현이 되었는데/getfile /Users/사용자/test.txt로 파일 전송 기능이 구현이 안됩니다..디버깅으로 로그를 봐도 모르겠어서 질문 남깁니다!! 미리 감사드립니다.스크린샷도 같이 첨부드립니다!참고로 맥북으로 진행중입니다. [1] 디버깅[2] 기능구현 x/dir /Users/Desktop 입력하면 데스크탑 파일목록 나옴.[3] 코드import telepot import logging import os logging.basicConfig(level=logging.DEBUG) logger = logging.getLogger(__name__) telegram_token = "6129613380:AAGbL2T-ogOaIK4v2YTPe4zTD9pzBikKLEA" # 파일 경로 찾기 def get_dir_list(dir): str_list = "" if os.path.exists(dir): file_list = os.listdir(dir) file_list.sort() for f in file_list : full_path = os.path.join(dir,f) if os.path.isdir(full_path): f = "[" + f + "]" str_list += f str_list += "\n" str_list.strip() return str_list def handler(msg): content_type, chat_Type, chat_id, msg_date, msg_id = telepot.glance(msg, long=True) print(msg) # if content_type == "text" : # bot.sendMessage(chat_id, "[반사] {}".format(msg["text"])) # /dir c:\\workspace if content_type == "text": str_message = msg["text"] if str_message[0:1] == "/": args = str_message.split(" ") command = args[0] del args[0] if command == "/dir": filepath = " ".join(args) if filepath.strip() == " ": bot.sendMessage(chat_id, "/dir [대상폴더]로 입력해주세요.") else: filelist = get_dir_list(filepath) bot.sendMessage(chat_id,filelist) elif command[0:4] == "/get": filepath = " ".join(args) if os.path.exists(filepath): try: if command == "/getfile": bot.sendDocument(chat_id, open(filepath, "rb")) elif command == "/getimage": bot.sendPhoto(chat_id, open(filepath, "rb")) elif command == "/getaudio": bot.sendAudio(chat_id, open(filepath, "rb")) elif command == "getvideo" : #/getvideo c:\test\movie.mp4 bot.sendVideo(chat_id, open(filepath, "rb")) except Exception as e: bot.sendMessage(chat_id, "파일 전송 실패 {}".format(e)) else : bot.sendMessage(chat_id, "파일이 존재하지 않습니다.") bot = telepot.Bot(telegram_token) bot.message_loop(handler,run_forever=True)
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
실습내용 소스
타이핑해가면서 강의를 들어야 한다는건 알고있지만다리를 심하게 다쳐서 붓기 때문에 계속 누워있어야만해서.. 휴대폰으로 간신히 강의만 듣고있습니다.퇴원후에 바로 연습해보고싶은데혹시 실습내용 소스는 따로 제공하고 있지 않으신지요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
주식 크롤링 도움이 필요합니다. (추가 질문 있습니다.)
안녕하세요.어느새 무제한 강의로 바뀌었네요. ^^네이버금융크롤링을 응용하여 재무제표를 가져 오고 싶은데...https://finance.naver.com/item/main.naver?code=005930 페이지의 재무제표는 잘 가져왔습니다.그런데 재무재표 더보기 버튼을 클릭한 페이지에서 재무제표의 테이블 값을 가져오려니 못가져 오고 있습니다.https://finance.naver.com/item/coinfo.naver?code=005930&target=finsum_more 페이지 입니다.찾고 싶은 테이블 : <table class="gHead01 all-width" summary = "주요재무정보를 제공합니다.">왜 못가져오나 테스트 해보니html print 해보면 찾고 싶은 table 내용이 아예 없어요.해당 table의 부모인 div = id는 페이지 열 때 마다 값이 변합니다.동적페이지 이런 걸까요??? Selenium을 사용해야 하는건지...별 삽질을 다 해 보고 있는데 제 능력으로는 해결이 안되 도움이 필요합니다. ㅠㅠ
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
코레일 크롤링 질문
코레일도 토요코인이랑 비슷하게 post 이용해서 크롤링하려 해봤는데 잘 안되더라고요,,결국에는 그냥 selenium으로 들어가서 beautifulsoup로 좌석있는지 체크하고 10초마다 다시 조회한 다음 좌석있는지 다시 체크하는 식으로 해서 어느 정도 성공시키긴 했는데, 코레일은 requests랑 beautifulsoup만으로는 어려울까요? import requests from bs4 import BeautifulSoup import time token = "" channel = "#test" text = "Check your stock crawler." def post_message(token, channel, text): requests.post("https://slack.com/api/chat.postMessage", headers={"Authorization": "Bearer "+token}, data={"channel": channel,"text": text} ) myToken = "API토큰" url = "https://www.letskorail.com/ebizprd/EbizPrdTicketpr21100W_pr21110.do" #date_list = ['2022/06/25', '2022/07/02'] datas_obj = { "selGoTrain": 5, "txtPsgFlg_1": 1, "txtPsgFlg_2": 0, "txtPsgFlg_8": 0, "txtPsgFlg_3": 0, "txtPsgFlg_4": 0, "txtPsgFlg_5": 0, "txtSeatAttCd_3": 000, "txtSeatAttCd_2": 000, "txtSeatAttCd_4": 15, "selGoTrainRa": 5, "radJobId": 1, "adjcCheckYn": "Y", "txtGoStart": "용산", "txtGoEnd": "전주", "txtGoStartCode": 104, "txtGoEndCode":45, "selGoYear": 2023, "selGoMonth":3, "selGoDay": 23, "selGoHour": 8, "txtGoHour": 85500, "txtGoYoil": "목", "selGoSeat1": 15, "txtPsgCnt1": 1, "txtPsgCnt2": 0, "txtGoPage": 1, "txtGoAbrdDt": 20230323, "checkStnNm": "Y", "txtMenuId": 11, "SeandYo": "N", "ra": 1, "hidRsvTpCd": 3, "txtPsgTpCd1": 1, "txtPsgTpCd2": 3, "txtPsgTpCd3": 1, "txtPsgTpCd5": 1, "txtPsgTpCd7": 1, "txtPsgTpCd8": 3, "txtDiscKndCd1": 000, "txtDiscKndCd2": 000, "txtDiscKndCd3": 111, "txtDiscKndCd5": 131, "txtDiscKndCd7": 112, "txtDiscKndCd8": 321, "txtCompaCnt1": 0, "txtCompaCnt2": 0, "txtCompaCnt3": 0, "txtCompaCnt4": 0, "txtCompaCnt5": 0, "txtCompaCnt6": 0, "txtCompaCnt7": 0, "txtCompaCnt8": 0 } while True: time.sleep(2) response = requests.post(url, data=datas_obj) html = response.text soup = BeautifulSoup(html, 'html.parser') #a가 있으면 좌석 있음:#tableResult > tbody > tr:nth-child(1) > td:nth-child(6) > a:nth-child(1) > img #a없이 바로 이미지면 좌석 없음:#tableResult > tbody > tr:nth-child(1) > td:nth-child(6) > img # '#tableResult > tbody > tr:nth-child(1) > td:nth-child(6) > a:nth-child(1) > img' 선택자를 이용하여 좌석 이미지를 찾습니다. seat_with_a = soup.select_one('#tableResult > tbody > tr:nth-child(1) > td:nth-child(6) > a:nth-child(1) > img') seat_with_a2 = soup.select_one('#tableResult > tbody > tr:nth-child(3) > td:nth-child(6) > a:nth-child(1) > img') #tableResult > tbody > tr:nth-child(3) > td:nth-child(6) > img #tableResult > tbody > tr:nth-child(3) > td:nth-child(6) > a:nth-child(1) > img # '#tableResult > tbody > tr:nth-child(1) > td:nth-child(6) > img' 선택자를 이용하여 좌석 이미지를 찾습니다. seat_without_a = soup.select_one('#tableResult > tbody > tr:nth-child(1) > td:nth-child(6) > img') seat_without_a2 = soup.select_one("#tableResult > tbody > tr:nth-child(3) > td:nth-child(6) > img") # 좌석 이미지가 있으면 "좌석 있음"을, 없으면 "좌석 없음"을 출력합니다. if seat_with_a or seat_with_a2: print("좌석 있음") post_message(token, channel, "좌석 생김") elif seat_without_a and seat_without_a2: print("좌석 없음")이렇게 했는데 데이터 자체가 잘못됐는지 중간에 print(html)로 보니까 제대로 해당 페이지를 가져온 것 같지도 않더라고요..
-
미해결파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
undetected_chromedriver 사용시 widow-size 가 적용이 안됩니다.
5. bot detection 피하기 고급편에 나온 소스를 그대로 적용하였습니다.다른 부분은 문제가 없고, 에러 또한 없습니다.그런데 window-size 관련된 argument 값이 적용이 안됩니다.항상 큰 사이즈의 윈도우만 오픈되고 있습니다.python 버젼은 3.11.0 입니다.버젼을 다운그레이드 해야 할까요?