[python] 크롤러 만들어 db에 정보 insert 하기  

일단, 아래 소스에서 영화 제목과 평점을 뽑아 오는 과정은

타 블로그에서 소스를 가져왔습니다..

(해당 소스가 여기저기 블로그에 많이 있어서 어디가 원본인지 파악이 힘듦)

 

파이썬을 이용해서 크롤러를 만들기 위해 구글 선생님한테 가서 무척이나 많은 검색을 부탁드렸고,

아래와 같이, 비교적 간단한 크롤링을 구현하는 소스를 구하게 되었다.

 

그냥 소스를 돌리기만 하면 그건 내 것이 아니니..

소스 분석을 해보았다.

 

그리고 내가 가지고 있는 TEST DB에 그 데이터를 insert 하는데 까지 일단 성공!

블로그에 흔적을 남겨둔다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

from bs4 import BeautifulSoup
from urllib.request import urlopen

#선언부로, 어떤 모듈을 쓸것인지.. 선언하는 부분.

#위와 같이 선언한다고 다 쓸수 있는건 아니다. 해당 모듈을 설치하고, 선언을 해야지..

#pip3 install BeautifulSoup

#pip3 install urlopen

#모듈을 설치 해보자.

url = "http://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=cur&date=20180802"

#url 이란 변수에 http...로 시작하는 url 주소를 저장


page = urlopen(url)
soup = BeautifulSoup(page, "html.parser")

#page란 변수에 urlopen함수로 반환받은 url값의 객체를 저장

#잘 모르겠을땐.. 위 함수 돌린다음에, 주피터 노트북에서 print(page) 해보면 이해하기 쉬움

#soup 역시, 해당 변수에 BeautifulSoup 함수에서 반환하는 파싱한 값을 저장


movie_name = [soup.find_all('div', 'tit5')[n].a.string for n in range(0, len(title_n))]
# 전체 영화의 제목을 뽑아옴


movie_point = [soup.find_all('td', 'point')[n].string for n in range(0, len(title_n))]

# 전체 순위의 평점을 뽑아옴



#위 두줄에서 보면 div, tit5, td, point 등이 있는데, 이런값을 어떻게 알아내냐면,

#크롤링할 웹페이지를 크롬에서 열어 F12키를 누르면 html문서 소스가 나온다.

#여기에서 우리가 크롤링하려는 데이터 대상이 어떤 변수에 저장이 되어 화면에 나타나는지

#잘 살펴보면 알 수 있다. 저기 저 웹페이지에 가서 한번 확인 해보자.


import pymysql

#이것역시, pymysql이란 모듈을 쓰겠다고 import 하는 부분이다.

#안깔려있다면, pip3 install pymysql 로 설치..

#pymysql은 mysql 이나 mariadb에 python으로 접속을 할 수 있게 하는 모듈이다.

conn = pymysql.connect(host='192.168.1.25',
user = 'DB유저', password='비밀번호', db = '스키마명',charset = 'utf8')

#접속할 대상 DB의 접속정보

curs = conn.cursor(pymysql.cursors.DictCursor)

#DB에 연결한다 정도..

for x,y in zip(movie_name,movie_point):
#위에서 뽑아낸 영화이름과 평점만큼 insert문을 돌려야 하기에.. 

#두 변수를 zip이라는 변수로 합쳐서 돌립니다. 각각의 데이터를 x,y에 대입합니다.


     sql = "insert into python_test_01 values (%s,%s)"
     val = (x,y)

     curs.execute(sql,val)

#sql변수에 insert....문을 만들어 넣어주고, 영화제목과 평점 부분은 %s라고 받아 넣습니다.

#그리고 val에 x,y변수를 넣어주고, 이것은 위에서 선언한 영화제목, 그리고 평점 데이터 입니다.

#마지막 세번째 명령문에서 sql을 실행하고, %s에 순서대로 변수에 저장된 데이터를 넣어라... 가 됩니다.

conn.commit()

#commit을 치는 부분입니다.

conn.close()

#세션을 닫습니다.

 

*여기에서 처음 시작하는 파린이들에게 해드리고 싶은 말은...

insert문을 for문으로 돌릴 때 for문 아래 세줄의 명령문이 들여 쓰기 되어 있는데,

파이썬은 loop문에 괄호 같은 게 없기 때문에 들여 쓰기로 구분이 됩니다.

다른 언어들과는 달리 들여 쓰기에 의미가 있으니, 잘 파악하시길 바랍니다.

 

감사합니다.



출처: https://stricky.tistory.com/80 [The DataBase that i am good at]

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
57 [python 인공지능] Deploy ML models with FastAPI, Docker, and Heroku | Tutorial 졸리운_곰 2025.07.08 467
56 [python 인공지능] [VSCode] VSCode에서 ipynb 파일을 HTML(PDF 등..)로 졸리운_곰 2025.05.27 289
55 [Python 인공지능] [파이썬을 이용한 한글 NLP] 03. 간단한 키워드 추출기 졸리운_곰 2025.01.29 459
54 [Python 인공지능] [ 한글 키워드 시각화 ] 파이썬 python 텍스트 마이닝 한글 ( 워드 클라우드 WordCloud, squrify 트리맵으로 빅데이터 마스터) file 졸리운_곰 2025.01.29 398
53 [Python 인공지능] 기계 학습의 A to Z : IPython notebook과 scikit-learn을 활용한 기계 학습 file 졸리운_곰 2024.08.10 523
52 [python] 인공지능 python : 한글 문서 자동 요약 - lexrank 졸리운_곰 2023.07.06 404
51 [python] 인공지능 katiehouse / django-scikit-learn-tutorial file 졸리운_곰 2023.06.03 664
50 [python] [Anaconda]가상환경 설치,삭제 file 졸리운_곰 2022.12.03 405
49 [python][머신러닝] Scikit-learn Tutorial: Machine Learning in Python file 졸리운_곰 2022.11.29 497
48 [python] 파이썬(sklearn) 사이킷런(sklearn) 기초 졸리운_곰 2022.08.20 321
47 [python] scikit-learn이란 file 졸리운_곰 2022.08.20 455
46 [anaconde3][python] Create environment for tensorflow 1.4 in Anaconda 3 졸리운_곰 2022.07.02 563
45 [python][인공지능] [TensorFlow] Anaconda 가상환경 이용하여 TensorFlow GPU 설치 졸리운_곰 2022.01.20 438
44 [Python 인공지능] TextRank 를 이용한 키워드 추출과 핵심 문장 추출 (구현과 실험) file 졸리운_곰 2021.11.22 597
43 [python][인공지능] FLASK를 이용하여 PYTHON에서 PYTORCH를 REST API로 배포하기 졸리운_곰 2021.03.20 364
42 [python 파이썬] Creating REST API for TensorFlow models file 졸리운_곰 2021.02.01 488
41 [python 파이썬 인공지능] Keras 모델을 REST API로 배포해보기 file 졸리운_곰 2021.02.01 411
40 [파이썬 머신러닝] Scikit-learn 기초 졸리운_곰 2020.01.31 579
39 파이썬으로 간단한 뉴럴 네트워크 만들기 How to Create a Simple Neural Network in Python file 졸리운_곰 2020.01.29 22636
38 Keras를 활용한 주식 가격 예측 file 졸리운_곰 2019.02.25 983
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED