selenium , webdriver_manager 설치하기
!pip install selenium
!pip install webdriver_manager
필요한 부분 import
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
import time
import re
크롤링할 부분 설정하기
dining_url = "https://m.diningcode.com/list.dc"
chrome_options = webdriver.ChromeOptions()
wd = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
wd.get(dining_url)
time.sleep(1)
html = wd.page_source
soup = BeautifulSoup(html, 'html.parser')
stores = soup.select('div.InfoHeader>h2') # 리스트 항목중 h2 태그들 추출
scores = soup.select('div.Rate>p.Score') # 리스트 항목중 p 태그의 클래스가 Score인 것들을 추출
userScores = soup.select('div.Rate>p.UserScore') # 리스트 항목중 p 태그의 클래스가 UserScore인 것들을 추출
list로 받아와서 추출하기
store_list = list()
for index, store in enumerate(stores) :
store_dict = dict()
store_dict["store_name"] = re.sub(r'[^\uAC00-\uD7A3\s]',"",store.text) #한글만 추출
store_dict["score"] = scores[index].select_one('span').text
userScore = re.sub('<p.*?>.*?/>|</p>', "", str(userScores[index]))
print('userScore', userScore)
store_dict["userScore"] = re.sub('\(\w*\)',"",str(userScore)).strip()
scorer = re.findall('\(([^)]+)',userScore)
store_dict["scorer"] = scorer[0]
store_list.append(store_dict)
DB에 저장하기
import pymongo
conn=pymongo.MongoClient()
db = conn.bitDB
db.dining.insert_many(store_list)'JX405기_비트 > mongoDB' 카테고리의 다른 글
| Day17-4 정적 웹사이트 파이썬을 이용한 크롤링 & MongoDB 저장 (0) | 2023.02.08 |
|---|---|
| Day17-3 몽고 디비와 Phyton 연동 (0) | 2023.02.08 |
| Day17-2 MongoDB 연습 문제3 (0) | 2023.02.08 |
| Day17 -1 인덱싱(단일 인덱스, 복합인덱스), 텍스트 인덱스, 공간 정보 쿼 (0) | 2023.02.08 |
| Day17-0 MongoDB Day16 요약 & SQL과 비교 (0) | 2023.02.08 |