본문 바로가기

크롤링 예제7

프로젝트 : 부산항만공사 서비스 제안관련 데이터분석-3 ㅁ 프로젝트 산출물 : https://busanportservice.streamlit.app/ Abstract Busan Port busanportservice.streamlit.app ㅁ선용품 관련 품목선정 중 식품카테고리에 대한 워드 크라우드 활용 데이터 크롤링 ○ 셀레니움 → 크롤링 활용 ○ 뷰티풀숲 → 크롤링 활용 ○ re → 전처리 활용 ○ pandas → 전처리 활용 from selenium import webdriver #Selenium의 웹 드라이버를 사용하기 위한 모듈을 임포트 from selenium.webdriver.common.by import By #Selenium에서 사용하는 By 클래스를 임포트합. 웹 요소를 검색하는데 사용. from selenium.webdriver.comm.. 2024. 3. 11.
쿠팡 : 상품 검색결과 중 로켓배송인 상품 크롤링 □ 내용 ○ 쿠팡에서 특정 키워드에 따른 검색결과 상품 들 중 로켓배송이 되는 품목만 크롤링 ○ 특이사항 - 변수명 = .select('li[class=search-product') → li 태그 중 클래스명이 정확히 search-product 인 것을 앞 코드와 같이 표현 ▶ .select('li.search-product')과 같이 쓰면 아래 이미지와 같이 특정 클래스명이 들어간것을 모두 파악하여 처리해야할 변수 및 정확도가 떨어짐 - continue 문 : 조건이 True이면 아래 코드까지 진행, 조건이 False면 위로 올라가서 코드실행 #로켓뱃지 rocket_pd = i.select_one('.badge.rocket') if rocket_pd: continue #로켓벳지가 없다면 위로 올라가서 .. 2024. 2. 13.
CGV 무비차트 크롤링 □ 과정 ○ 데이터 영역 Select_one으로 지정 ○ 영역에서 특정영역 Select 으로 지정 ○ 반복문을 활용해 '부모태그.클래스명 > 자식태그.클래스명'식으로 정확한 타겟 지정후 string으로 추출 * ('span.txt-info > strong').next_element 사용시 strong 태그가 열리고나서 출현하는 첫번째 텍스트 또는 태그값 가져옴. 도중 중간에 태그가 있다면 그 전까지만 가져옴. 하위 태그 및 텍스트까지 가져오고 싶다면 .find_next() 활용. 2024.02.07 개봉 □ 코드 및 결과 #라이브러리 호출 import requests from bs4 import BeautifulSoup #타겟 target_url = 'http://www.cgv.co.kr/movies/'.. 2024. 2. 11.
반복문을 활용한 페이지별 크롤링 □ url 링크 패턴을 파악 후 If문과 for문을 활용하여 페이지별 해당하는 조건의 데이터를 추출 #관련 라이브러리 호출 import requests from bs4 import BeautifulSoup for page_num in range(10): if page_num == 0: #조건문을 활용하여 0이면 홈화면 출력 target_page = requests.get('https://davelee-fun.github.io/') print('홈화면 입니다') else: #0이 아니라면 그다음 페이지는 아래 링크로 이동하며 h4이며 클래스명이 card-text인 데이터를 추출 target_page = requests.get(f'https://davelee-fun.github.io/page{str(page.. 2023. 12. 21.
크롤링 예제 4 □ 예제 : 특정 페이지의 태그별 영역의 값을 가져와 원하는 형태로 출력하자 (작성자는 사이트의 요약정보를 출력해주는 것을 위해 태그별 크롤링한 데이터를 단순가공하여 출력함) #라이브러리 호출 import requests from bs4 import BeautifulSoup #크롤링 대상 웹사이트 지정 web = 'https://davelee-fun.github.io/' #정보 가져오기 requests.get() requests_info = requests.get(web) requests_info_parser = BeautifulSoup(requests_info.content, 'html.parser') print('\n####################블로그 기본정보###################.. 2023. 12. 20.
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.