파이썬 크롤링15 프로젝트 : 부산항만공사 서비스 제안관련 데이터분석-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. 프로젝트 : 부산항만공사 서비스 제안관련 데이터분석-2 ㅁ 프로젝트 산출물 : 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.common.keys import Keys #키.. 2024. 3. 11. 프로젝트 : 부산항만공사 서비스 제안관련 데이터분석-1 ㅁ 프로젝트 산출물 : 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.common.keys import Key.. 2024. 3. 11. 특정 사이트 크롤링 및 데이터프레임 생성 □ 아래와 같은 형식으로 데이터를 표시하는 웹사이트 크롤링 후 크롤링한 데이터를 데이터프레임으로 저장해보자 #라이브러리 호출 from bs4 import BeautifulSoup from urllib.request import Request, urlopen import pandas as pd #사이트 url_base = 'http://www.chicagomag.com' url_sub = '/Chicago-Magazine/November-2012/Best-Sandwiches-Chicago/' html = urlopen(url) soup = BeautifulSoup(html, "html.parser") #크롤링 타겟태그 선택 target_area = soup.select('div.sammy') #크롤링 데이.. 2024. 2. 13. 쿠팡 : 상품 검색결과 중 로켓배송인 상품 크롤링 □ 내용 ○ 쿠팡에서 특정 키워드에 따른 검색결과 상품 들 중 로켓배송이 되는 품목만 크롤링 ○ 특이사항 - 변수명 = .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. SSG 이벤트 크롤링 : select, find_all(string=True) □ .replace : 기존 A를 B로 바꿈 □ .strip() : 앞뒤 공백 제거 □ 태그활용법 : ('태그명'), ('.클래스명'), ('태그명.클래스명'), ('부모태그.클래스명 > 자식태그.클래스명'), ('태그')['속성'] □ select + find_all(string=True) vs select + select_one ○ 아래 코드보면 알 수 있듯이 select + select_one 방법이 정확한 데이터를 추출하고 전처리하기에도 수월함 ○ select+find_all 사용시 간편한 코드로 해당 영역의 텍스트를 신속하게 추출할 수 있지만 전처리하기에 불편함. * 개인적으로 select + select_one 추천 / 특정영역의 정확한 태그값을 지정함으로써 효율적으로 수집, 가공이 가능하기에.. 2024. 2. 9. 다음 뉴스(제목, 링크, 회사, 카테고리) 크롤링 □ 크롤링 대상 ○ 언론사 ○ 카테고리 ○ 기사제목 ○ 기사제목 안에 있는 상세페이지 링크 주소 #라이브러리 호출 import requests from bs4 import BeautifulSoup #크롤링 사이트 설정 target_url = 'https://news.daum.net/' #데이터 request 및 get. get한 데이터를 html.paser로 분리 req_data_area = requests.get(target_url, headers = headers) html_raw_data = req_data_area.text #해당영역에 있는 모든 텍스트 데이터 저장 html_raw_data_parsing = BeautifulSoup(html_raw_data, 'html.parser') #클래스 이.. 2024. 2. 5. .text 와 .string 차이점(보완) # 라이브러리 호출 from bs4 import BeautifulSoup html = ''' 네이버 ''' #html.parser를 활용해 html 파싱 soup = BeautifulSoup(html, 'html.parser') #클레스네임이 logo_naver인것 활용 logo = soup.select_one(".logo_naver") print(f'text\t:\t{logo.text}\n.logo_naver 네임을 가진 태그의 모든 하위요소의 텍스트 추출. 좀 두루뭉실하게 사용하려면 사용') print('\n\n') print(f'string\t:\t{logo.string}\n정확하게 한개의 태그안에 텍스트가 있어야 인식하고 추출가능함. 빈칸, 빈줄이 있다면 무엇을 추출해야하는지 몰라함. 정확한 값을.. 2024. 2. 2. 이전 1 2 다음