개인용 복습공간

[Python] 파이썬으로 유튜브 크롤링 - 2 본문

Python

[Python] 파이썬으로 유튜브 크롤링 - 2

taehwanis 2021. 5. 26. 22:10

 

 

 

            크롤링한 text를 pymysql을 이용해 DB에 넣어보려고한다.

 

 

 

MySQL Workbench를 이용해 일단 DB와 테이블을 하나 만든다.

testEX 테이블

 

 

 

pip install pymysql을 cmd창에서 설치해주고 import 해준다.

dbtest.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import selenium
from selenium import webdriver
from time import sleep
import time
import pymysql
 
URL = 'https://www.youtube.com/c/yangdailOfficial/videos'
 
driver = webdriver.Chrome(executable_path='chromedriver')
driver.get(url=URL)
 
time.sleep(1)
 
title = driver.find_element_by_xpath('//*[@id="video-title"]')
url = []
url.append(title.get_attribute('href'))
print(url)
 
sleep(1)
 
driver.close()
 
conn = pymysql.connect(host="localhost",
                     user="root1234",
                     passwd="1234",
                     db="crawl_data",
                     charset="utf8")
                    
curs=conn.cursor()
sql = """insert ignore into testEX(url) values (%s)""" 
curs.execute(sql, url)
 
conn.commit()
conn.close()
cs
 

pymysql.connect() 메서드를 사용하여 MySQL에 Connect 한다. 호스트명, 로그인, 암호, 접속할 DB 등을 파라미터로 지정한다. DB 접속이 성공하면, Connection 객체로부터 cursor() 메서드를 호출하여 Cursor 객체를 가져온다.  Cursor 객체의 execute() 메서드를 사용하여 SQL 문장을 DB 서버에 보낸다. 삽입, 갱신, 삭제 등의 DML 문장을 실행하는 경우, INSERT/UPDATE/DELETE 후 Connection 객체의 commit() 메서드를 사용하여 데이터를 확정 갱신한다. Connection 객체의 close() 메서드를 사용하여 DB 연결을 닫는다.

sql문에 insert ignore into... 는 중복되면 insert 하지 않고 무시한다.

 

 

실행 후 testEx 테이블

이와 같이 코드 실행 후 크롤링한 url이 DB에 저장이 된다.

Comments