본문 바로가기

Python95

css selector □ select() ○ select() 안에 태그 또는 CSS class 이름 등을 넣음 ○ 결과값은 리스트 형태로 반환 ○ 매칭되는 첫번째 데이터만 얻고자 할 때는 select_one(), 이 때는 해당 아이템의 객체가 리턴됨 ○ 하위태그 - '상위태그 하위태그' : 상위에서 하위태그에 있는 모든 값을 출력 - '상위태그>하위태그' : 상위기준 바로 하위에있는 태그 값 출력*반드시 상/하위로 구성된 태그일때만 사용가능 □ select_one() ○ 리스트형태가 아닌 단하나의 객체로 출력 ○ 조건에 맞는 값들이 다른 값들이 많아도 첫번째 값만 출력 *find()/select()로 가져온 객체에는 find()/select()함수를 중복하여 사용가능함 #라이브러리 추출 import requests from .. 2023. 12. 20.
크롤링 예제 3 □ 전처리 ○ .split(구분값) - 구분값을 중심으로 분리하여 리스트 형태로 저장 - 구분되어 저장된 값을 인덱스 번호를 활용하여 출력 ○ .strip() : 앞, 뒤 공백 제거 ○ .replace('변경대상 값', '변경할 값) : 특정 값을 원하는 값으로 변경 □ enumerate(변수명) ○ 반복문으로 출력시 출력 값에 번호를 붙이고 싶다면 enumerate 함수 활용 ○ 이때 번호로 출력할 변수를 추가하여 코딩해야함 #라이브러리 추출 import requests from bs4 import BeautifulSoup #크롤링 대상 사이트 지정 target_place = requests.get('https://davelee-fun.github.io/blog/crawl_test') #htmlpars.. 2023. 12. 19.
크롤링 예제 2 □ .find, .find_all() ○ .find() - 조건만족 태그를 단 한개만 가져옴 - 만약 조건을 만족하는 태그가 여러개라고하면 첫번째 것만 가져옴 ○ .find_all() - 조건만족 태그관련 여러개의 값, 즉, 복수개를 모두 가져옴 □ 태그별 css 속성등을 활용한 조건으로 데이터 추출 ○ 변수명 = 변수명.find('태그', class_ ='스타일') ○ 변수명 = 변수명.find('태그', '스타일') ○ 변수명 = 변수명.find('태그', attrs = {'align':'center'}) ○ 변수명 = 변수명.find(id='아이디명') □ .get_text(), .string ○ .get_text() - 문자열이 없을시 None 출력 ○ .string - 유니코드 형식의 텍스트까지.. 2023. 12. 19.
크롤링 예제 1 □ 사용 라이브러리 ○ requests : 웹페이지 가져오기 라이브러리 ○ bs4(BeautifulSoup) : 웹페이지 분석(크롤링) 라이브러리 #라이브러리 임포트 import requests from bs4 import BeautifulSoup #웹페이지 가져오기 requests.get() bring_web = requests.get('https://sports.news.naver.com/news?oid=477&aid=0000464871') #웹페이지 파싱하기 #.content, 'html.parser' html 관련 태그를 파싱해주는 함수) parsing = BeautifulSoup(bring_web.content,'html.parser') print(parsing) #필요 데이터 추출 mydata.. 2023. 12. 19.
셀레니움(Selenium) 기본예제 : naver 쇼핑 특정상품 위치 □ 목표 : 특정 키워드 상품에 대한 naver 쇼핑 위치(순서)를 조회/출력 → 자신이 판매하는 상품의 순서(순위)를 파악 가능함 □ 필요사항 ○ 상품별 고유값을 분석 후 임의로 특정 상품에 대한 고유값을 검색하여 해당 상품의 위치 출력 ○ 자동 스크롤기능 → 조회하고자하는 글이 없을시 자동으로 스크롤하여 내려가기 위함임 □ Khow_How ○ URL 분석 : 주소상에서 키워드 값 또는 페이지네이션 값을 넣는 패턴 확인 ○ 고유값을 갖는 마땅한 키값이 없다면 개발자 도구에서 모바일 화면 사이즈로 변환 후 다시 개발자 도구를 킨 후 숨겨진 키값을 탐색할 것 *PC 및 모바일 화면별 키값이 다른 경우가 있음 *해당 코딩 및 특정상품 선정은 글쓴이 임의로 지정하였음 #셀레니움 창 생성을 위한 라이브러리 호출.. 2023. 12. 14.
셀레니움(Selenium) 기본예제 : naver view 특정글 위치 □ 목표 : 특정 키워드에 대한 특정 view 글의 위치(순서)를 조회/출력 □ 필요사항 ○ 조회 출력하고자하는 view 글의 a태그 링크 ○ 위 a태그 링크를 포함한 부모태그 값 → 게시글별 패턴 확인 ○ 자동 스크롤기능 → 조회하고자하는 글이 없을시 자동으로 스크롤하여 내려가기 위함임 ※ naver view는 기본 디폴트로 30개씩 게시글을 보여줌 없다면 스크롤을 해야하며, 스크롤시 자동으로 다음 글이 보여짐 #셀레니움 창 생성을 위한 라이브러리 호출 실행 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from se.. 2023. 12. 13.
셀레니움(Selenium) 기본기능 □ 기본 기능 □ 초기설치 및 실행시 import library #셀레니움 창 생성을 위한 라이브러리 호출 실행 from selenium import webdriver from selenium.webdriver.common.by import By import chromedriver_autoinstaller import time #사용자 PC 상의 크롬에 맞는 드라이버 설치 chromedriver_autoinstaller.install() ○ 특정 페이지 접속후 특정영역에서의 텍스트 출력 - CSS SELECTOR를 활용하여 특정영역에 포함된 텍스트를 출력하도록 진행 - XPATH를 활용하여, XPATH 특정영역 클릭(현재 코드기준 스포츠) *지속적으로 업데이트를 하는 웹사이트를 대상으로 진행한다면 지정된.. 2023. 12. 12.
셀레니움(Selenium) □ 셀레니움(Selenium)의 핵심원리 ○ 웹 브라우저 컨트롤 ○ 크롬창을 코드로 제어하는 것 ○ 화면에서 보이는 모든 요소를 제어가능함 □ find_element 데려오는것 + 개발자도구(F12) 아이콘 찾는법 을 주로 활용 ○ (data) 데이터를 가져온다 ○ (action) 그 요소를 클릭한다 □ 가상환경 세팅후 지정 가상환경에서 필요 패키지 설치 pip install selenium chromedriver_autoinstaller tip1) 크롤러 : 데이터 수집 비중이 큼 tip2) 자동화 : 사용자 대신 일하는 비중이 큼 tip3) PC 또는 가상환경폴더에 셀레니움 라이브러리가 설치되어 있지 않다면 오류가 발생됨 따라서 설치 및 확인 후 진행할 것 https://selenium-python... 2023. 12. 11.
파이썬 개발환경세팅 : 가상환경(Virtual Environments) □ 가상환경(Virtual Environments) ○ 독립적인 실행환경을 의미함 ○ 가상환경을 미리 세팅하여 프로젝트별 패키지만을 설치하여 관리할 필요가 있음 ○ 가상환경은 다른 환경에 영향을 미치지 않으며 프로젝트별 다른 종류 및 버젼에대한 패키지를 사용할 수 있음 □ 가상환경(Virtual Environments) 세팅방법 (VS CODE기준) ○ 가상환경 설치 : pip install virtualenv ○ 가상환경 폴더지정 : cd test_folder * test_folder 예시를 든것이므로 사용자가 원하는 폴더명을 지정할 것 ○ 가상환경 활성화 : test_folder/Scripts/activate ※ Unauthorized Access 에러 발생시 ▶ Powershell 실행 ▶ Set-.. 2023. 12. 11.