본문 바로가기
Project/2

웹 크롤링(bs4, selenium) / 구글 번역 api / pymongo로 db에 저장

by 썬이 2021. 10. 4.
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from googletrans import Translator
from pymongo import MongoClient

# BeautifulSoup
# URL을 읽어서 HTML 받아오고, HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
url = "http://iteslj.org/questions/"
result = requests.get(url)
bs_obj = BeautifulSoup(result.content, "html.parser")

# 첫 페이지에서 a 태그로 각 서브페이지의 href 찾기
q_packages = bs_obj.find("tr")
q_packages_html = q_packages.findAll("a")

# googletrans
translator = Translator()

# pymongo
client = MongoClient('localhost', 27017)
db = client.dbbbackco

for q_html in q_packages_html:
    # selenium
    # 서브페이지의 href와 앞의 주소를 붙여 각 서브페이지 링크 연결
    driver = webdriver.Chrome('chromedriver')  # 웹드라이버 파일의 경로
    driver.get("http://iteslj.org/questions/" + q_html['href'])

    # BeautifulSoup
    html = driver.page_source  # 페이지의 elements 모두 가져오기
    soup = BeautifulSoup(html, 'html.parser')  # BeautifulSoup 사용하기
    notices = soup.select('#bd > div.main.wide > ul > li')

    for n in notices:
        questions = n.text.strip()
        q_korean = translator.translate(questions, dest="ko")
        doc = {'question': q_korean.text}
        db.questions_ko.insert_one(doc)
        # print(q_korean.text)

        # Selenium driver 창 닫기
        driver.quit()

사이트에서 크롤링 - 구글 번역 api 이용해서 한국어로 돌리기 - pymongo 이용해서 mongodb에 저장

bs4, selenium, googletrans, pymongo 이용

 

주의

pymongo는 명령 프롬프트(cmd) 사용해서 mongod 명령어로 작동시킨 뒤에

http://localhost:27017/ 이용해서 제대로 작동되고 있는지 확인 후 사용!!(ㅠㅠ)

그래야 잘 연결되어 db에 문제없이 저장된다! 연결 끊기면 오류 발생한다.

 

 

참고 사이트

https://www.notion.so/1-e7183b041f7f4a17be0d9b27f053d02b

 

[스파르타코딩클럽] 파이썬 혼자놀기 패키지 - 1일차

강의자료 시작에 PDF파일을 올려두었어요!

www.notion.so

05. 이미지 웹 스크래핑(크롤링) 하기

- bs4와 selenium 동시 사용하는 데에 도움.

 

 

https://beomi.github.io/gb-crawling/posts/2017-02-27-HowToMakeWebCrawler-With-Selenium.html

 

Selenium으로 무적 크롤러 만들기 · GitBook

Selenium은 주로 웹앱을 테스트하는데 이용하는 프레임워크다. webdriver라는 API를 통해 운영체제에 설치된 Chrome등의 브라우저를 제어하게 된다. 브라우저를 직접 동작시킨다는 것은 JavaScript를 이용

beomi.github.io

- bs4와 selenium 동시 사용하는 데에 도움.

 

 

https://www.youtube.com/watch?v=EH50a7UrUfw 

링크 안에 링크 크롤링하기

- bs4와 requests 이용

 

 

https://blockdmask.tistory.com/540

 

[python] 파이썬 구글 번역 api 사용하기 (최신버전)

안녕하세요. BlockDMask입니다. 오늘은 파이썬에서 구글 번역 api인 googletrans를 사용하는 방법에 대해서 이야기해보려 합니다. <목차> 1. 구글 번역 api 설치 2. 구글 번역 api 예제와 설명 3. google translat

blockdmask.tistory.com

- 구글 api 이용

 

 

https://workingwithpython.com/howtouseselenium-3/

 

셀레니움으로 크롤링 기초 시작하기 - WorkingWithPython

파이썬을 사용하는 크롤링에 관심이 있으시다면, 셀레니움을 한 번쯤은 들어보셨을 것입니다. 하지만 막상 시작하려니 복잡하고 어려움이 느껴진다면 본 포스팅이 알려주는대로 셀레니움의 기

workingwithpython.com

(참고) 튜터님이 알려주신 셀레니움 xpath

but 실제로는 이용하지 않음.