Selenium 4.1.0에서 headless 설정 변경
·
파이썬/크롤링
headless 모드 처리 방식이 변경될 예정입니다. 다가오는 Selenium 4.8.0 릴리스에서는 headless 모드를 설정하는 편의 메서드가 폐지됩니다. 대신 사용자는 브라우저 옵션을 구성할 때 인수를 통해 이를 정의해야 합니다. 변경 이유Chrome과 같은 크로미움 기반 브라우저에서 이제 두 가지 다른 headless 모드를 제공합니다. Selenium의 기존 편의 메서드는 크로미움에서 제공하는 초기 headless 모드를 사용합니다. 이 메서드의 폐지로 시작하여 Selenium 4.8.0에서 이를 사용하지 않게 되며 4.10.0 버전에서는 완전히 제거됩니다. 이로써 사용자는 두 headless 모드 중에서 선택할 수 있게 됩니다. 두 가지 headless 모드 전통적인 headless 모드 ..
네이버 블로그 리뷰 크롤링
·
Portfolio
터미널에 작성된 로그는 데이터프레임의 인덱스, 블로그 타이틀 로직 크롤링으로 획득한 음식점의 Place_Id로 블로그 리뷰 주소(url)을 찾고 블로그에 requests 요청을 해 획득한 text를 BeautifulSoup로 html 변환 데이터 파싱 수집한 데이터 블로그 글 제목 블로그 글 내용 글쓴이 작성 날짜 태그 url 좋아요도 수집하려 하였으나, js를 실행하지 않으면 빈칸이다. 셀레니움을 사용하지 않아 속도가 매우 빠르지만, 블로그 url을 찾는 과정에서 매우 애를 먹었다. 현재 속도도 마음에 들지 않아 더욱 빠르게 할 수 있는 방법을 고민 해 봐야겠다
하나의 리스트를 여러개로 나누기
·
파이썬/Basic
리스트를 나누는 방법에는 여러 가지가 있습니다. 가장 일반적인 방법은 for 루프를 사용하는 것입니다. 다음은 for 루프를 사용하여 리스트를 1000개씩 나누는 코드입니다. for문 사용 index = [row.index[i * 1000:(i + 1) * 1000].tolist() for i in range(0, int(len(row.index) / 1000))] 이 코드는 다음과 같이 작동합니다. range() 함수를 사용하여 0부터 len(row.index) / 1000 미만의 값을 생성합니다. for 루프를 사용하여 생성된 값을 순회합니다. i * 1000부터 (i + 1) * 1000까지의 인덱스 값을 가져옵니다. 가져온 인덱스 값을 리스트로 변환합니다. 변환된 리스트를 index 리스트에 추가..
네이버 지도를 통한 맛집 크롤링 : Portfolio
·
Portfolio
셀레니움을 사용하게 된 이유 requests로 url 접속 시 껍데기 html만 가져와 selenium 사용 (js로 데이터 전송 받아 페이지 구성하는것으로 확인) 크롭 옵션중 headless를 추가해 보았으나 실제 페이지가 열리지 않으면 js 전송이 안되는것으로 추측 크롤링 로직 이름으로 맛집 검색 (이전 단계에서 생활의 달인, 백종원의3대천왕, 풍자 등 방송 매체에 소개된 음식점들을 크롤링 해 가게명과 주소를 엑셀로 저장함) 같은 상호명의 가게들이 많이 있어 주소로 찾으려는 맛집을 필터링 찾은 맛집을 클릭해 데이터 크롤링 수집 데이터 목록 : 가게명, 주소, 카테고리, 연락처, 네이버평점, 방송정보, 영업시간, place_id, 위경도 수집된 데이터 : 11035개 Issue 구글 구글 지도의 리뷰 ..
셀레니움 최적화를 위한 chrome_options
·
파이썬/크롤링
셀레니움은 웹 페이지를 자동화하는 데 사용되는 프레임워크입니다. 셀레니움을 사용하여 웹 페이지를 크롤링하거나 테스트할 때는 성능 최적화가 중요합니다. 성능을 최적화하면 셀레니움 작업을 더 빠르게 수행할 수 있습니다. 셀레니움의 성능을 최적화하는 방법 중 하나는 chrome_options를 사용하는 것입니다. chrome_options는 Chrome 브라우저를 특정 방식으로 구성하는 데 사용할 수 있는 옵션입니다. 셀레니움에서 자주 사용되는 chrome_options는 다음과 같습니다. --headless: 브라우저를 GUI 없이 실행합니다. 이를 통해 브라우저 창이 표시되지 않아 리소스를 절약할 수 있습니다. --disable-gpu: GPU 가속을 비활성화합니다. 일부 시스템에서 GPU 가속이 문제를 ..
셀레니움에서 이미지 비활성화 : 최적화
·
파이썬/크롤링
셀레니움을 사용하여 웹 페이지를 크롤링하거나 테스트할 때, 이미지는 페이지 로딩에 큰 영향을 미칠 수 있습니다. 이미지를 비활성화하면 페이지 로딩 시간을 크게 단축할 수 있습니다. 셀레니움에서 이미지를 비활성화하는 방법 중 하나는 Chrome 브라우저 옵션을 사용하는 것입니다. 다음과 같이 사용할 수 있습니다. from selenium import webdriver from selenium.webdriver.chrome.options import Options # Chrome 브라우저의 옵션을 설정 chrome_options = Options() prefs = {"profile.managed_default_content_settings.images": 2} # 이미지를 비활성화하는 옵션 chrome_op..
셀레니움에서 페이지가 로딩이 될 때까지 기다리는 방법
·
파이썬/크롤링
셀레니움은 웹 브라우저를 제어하여 자동화된 테스트를 수행하는 데 사용되는 라이브러리입니다. 셀레니움을 사용하여 웹 페이지를 탐색하려면 먼저 해당 페이지가 완전히 로딩되어야 합니다. 셀레니움에서 페이지가 로딩이 될 때까지 기다리는 방법에는 여러 가지가 있습니다. 1. time.sleep() 함수 사용 가장 간단한 방법은 time.sleep() 함수를 사용하는 것입니다. 이 함수는 지정된 시간 동안 코드의 실행을 일시 중지합니다. from selenium import webdriver driver = webdriver.Chrome() driver.get("https://google.com") # 10초 동안 기다립니다. time.sleep(10) # 페이지의 제목을 출력합니다. print(driver.tit..
문자열 공백 제거하기
·
파이썬/Basic
파이썬에서 문자열 공백을 제거하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 다음과 같습니다. 1. strip() 메서드 strip() 메서드는 문자열의 시작과 끝에 있는 모든 공백을 제거합니다. text = " Hello, World! " text.strip() # "Hello, World!" 2. lstrip() 메서드 lstrip() 메서드는 문자열의 시작에 있는 모든 공백을 제거합니다. text = " Hello, World! " text.lstrip() # "Hello, World! " 3. rstrip() 메서드 rstrip() 메서드는 문자열의 끝에 있는 모든 공백을 제거합니다. text = " Hello, World! " text.rstrip() # " Hello, World!" ..