사붐이개발일기

mongoDB 와 Python 연동 (정적 웹크롤링) 본문

Database/MongoDB

mongoDB 와 Python 연동 (정적 웹크롤링)

sabeom 2023. 2. 3. 17:44

DB연동 예제

!pip install pymongo

import pymongo 

conn = pymongo.MongoClient()
db = conn.bitDB
users = db.users

users = users.find({}).limit(3)
for user in users:
    print(user)

inventory = db.inventory.find({}, {'_id':0})
for inv in inventory:
    print(inv)

크롤링 예제

from bs4 import BeautifulSoup
import urllib.request

stores= []; # 결과를 저장할 리스트
encText = urllib.parse.quote('서울')
for page in range(1,17):
    Hollys_url= 'https://www.hollys.co.kr/store/korea/korStore.do?pageNo=%d&gugun=&store=&sido='%(page)
    Hollys_url+=encText
    print(Hollys_url)
    html = urllib.request.urlopen (Hollys_url)
    soupHollys = BeautifulSoup(html, 'html.parser')
    tag_tbody = soupHollys.find('tbody')
    for store in tag_tbody.find_all('tr'):
        store_info= dict() #개별 매장 정보를 사전 형태로 저장
        store_td = store.find_all('td')
        store_name = store_td[1].string; store_info["store_name"] = store_td[1].string
        store_sido = store_td[0].string; store_info["store_sido"] = store_td[0].string
        store_address = store_td[3].string; store_info["store_address"] = store_td[3].string
        store_phone= store_td[5].string; store_info["store_phone"] = store_td[5].string
        print('매장명',store_name, '시도구',store_sido,'주소', store_address,'전화번호', store_phone )
        stores.append(store_info) #사전 형태로 준비된 매장 정보를 리스트에 추가
for store in stores:
    print(store)

 

'Database > MongoDB' 카테고리의 다른 글

SQL vs mongoDB (용어 및 예제)  (0) 2023.02.07
mongoDB 2일차 (CRUD)  (0) 2023.02.07
mongoDB 와 Python 연동 (동적 웹크롤링)  (0) 2023.02.06
mongoDB CRUD  (0) 2023.02.02
mongoDB 1일차 (연산자)  (0) 2023.02.02