참고 : https://wikidocs.net/137919
- 구글 드라이버 설치 (크롬 버전과 동일) : https://chromedriver.chromium.org/downloads
- 크롬 현제 : 버전 114.0.5735.198(공식 빌드) (arm64)
- 크롬 드라이버 버전 : ChromeDriver 114.0.5735.90
- 주의 : 크롬 버전과 드라이버 버전은 동일해야한다.
- 웹 크롤링을 위한 라이브 러리 설명
- 기본 크롤링
# requests 패키지 가져오기
import requests
# BeautifulSoup 패키지 불러오기
# 주로 bs로 이름을 간단히 만들어서 사용함
from bs4 import BeautifulSoup as bs
# 가져올 url 문자열로 입력
url = '<https://www.naver.com>'
# requests의 get함수를 이용해 해당 url로 부터 html이 담긴 자료를 받아옴
response = requests.get(url)
# 우리가 얻고자 하는 html 문서가 여기에 담기게 됨
html_text = response.text
# html을 잘 정리된 형태로 변환
html = bs(html_text, 'html.parser')
print(html_text)
# 목표 태그 예)
<p class = "para">코딩유치원</p>
<div id = "zara">코딩유치원</p>
# 태그 이름으로 찾기
soup.find('p')
# 태그 속성(class)으로 찾기 - 2가지 형식
soup.find(class_='para') #이 형식을 사용할 때는 class 다음에 언더바_를 꼭 붙여주어야 한다
soup.find(attrs = {'class':'para'})
# 태그 속성(id)으로 찾기 - 2가지 형식
soup.find(id='zara')
soup.find(attrs = {'id':'zara'})
# 태그 이름과 속성으로 찾기
soup.find('p', class_='para')
soup.find('div', {'id' = 'zara'})
# a태그의 class 속성명이 news_tit인 태그
soup.select_one('a.news_tit')
soup.select('a.news_tit')
for i in titles:
title = i.get_text() print(title)
Fast api
https://elomaot.blogspot.com/2021/08/python-fastapi.html
conda activate base
conda install fastapi
pip install fastapi
conda install uvicorn
pip install uvicorn
# 파일 저장시 다시 서버 시작
# <http://localhost:8000>
# fast api 저장시 서버 시작
uvicorn main:app --reload
docker
#docker commit을 통해 python 을 설치한 my-python 실행 컨테이너를 이미지화 한다.
#my-python 컨테이너를 didwlsdbs/python3 이름으로 이미지로 만든다. (태그 : 1.0)
docker commit my-python didwlsdbs/python3:1.0
#이미지가 생성되었는지 확인
docker images
#docker 허브로 로그인한다
dockert login
#화면에 도커허브의 계정을 입력하는 화면이 나오고 계정을 입력하면 된다.
#docker 허브 화면에 표시되었던 push 명령어를 참고해서 push한다.
docker push didwlsdbs/python3:1.0
#docker 허브 사이트에 해당 이미지가 올라감을 확인할 수 있고,
#세팅했던 이미지를 삭제후 도커허브의 이미지를 다운받아보자.
docker rmi --force didwlsdbs/python3:1.0
docker pull didwlsdbs/python3:1.0
# 컨테이너 목록 출력
docker ps -a
# MySQL Docker 컨테이너 중지
$ docker stop mysql-container
# MySQL Docker 컨테이너 시작
$ docker start mysql-container
# MySQL Docker 컨테이너 재시작
$ docker restart mysql-container
# mySQL 컨테이너 bash 쉘 접속
docker exec -it "컨테이너 이름" bash
#----------------
도커시작
# 도커 안에서 mysql 을 실행하는 방법
mysql -u root -p
#------------------
# mysql 시작
# mysql 환경설정 확인
SHOW VARIABLES
# DATABASE을 보여주는 것
SHOW DATABASES
# DATABASE 생성
CREATE DATABASE [데이터베이스명];
초반 도커 mysql 설정 - 로컬 mysql 연동
1. 도커 설치하고 명령어 창에 등록
docker run -d -p 3306:3306 --name restAPI-DB-container -e MYSQL_DATABASE=scrollingDB -e MYSQL_USER=dmdrk1414 -e MYSQL_PASSWORD=qkrtmdcks1! -e MYSQL_ROOT_PASSWORD=qkrtmdcks1! mysql:latest
run -d \\ # 시작
> -p 3306:3306 \\ # 포트포워딩 외부접속, 도커 컨테이너 포트
> --name restAPI-DB-container \\ # 컨테이어 이름
> -e MYSQL_DATABASE=scrollingDB \\ # 데이터베이스 이름 (시작과 동시에 생성)
> -e MYSQL_USER=dmdrk1414 \\ # 일반 계정 생성
> -e MYSQL_PASSWORD=qkrtmdcks1! \\ # 일반 계정 비번
> -e MYSQL_ROOT_PASSWORD=qkrtmdcks1! \\ # root 계정 비번
mysql:latest # 버전
2. brew을 이용해 mysql 설치
<https://velog.io/@haleyjun/MySQL-Mac%EC%97%90-MySQL-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-M1%EC%B9%A9>
3. mysql 설정 (도커의 컨테이너 db와 로컬환결의 db와 연결)
./mysql -h 127.0.01 -P 3306 -u root -p
FASTAPT - MYSQL
<https://velog.io/@insutance/fastapi-connect-mysql-mongodb>
CREATE TABLE article (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
titleOfArticle VARCHAR(255) NOT NULL,
targetOfApplication VARCHAR(255) NOT NULL,
periodOfApplication VARCHAR(255) NOT NULL,
contentOfArticle VARCHAR(255) NOT NULL,
isScrapCheck BOOLEAN DEFAULT FALSE
);
INSERT INTO article (titleOfArticle, targetOfApplication, periodOfApplication, contentOfArticle)
VALUES ('Sample Title', 'Sample Target', 'Sample Period', 'Sample Content');
CREATE TABLE oldmanDisablesTable (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
date VARCHAR(255) NOT NULL,
content VARCHAR(2000) NOT NULL
isScrapCheck BOOLEAN DEFAULT FALSE
);
CREATE TABLE recipientsTable (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
date VARCHAR(255) NOT NULL,
content VARCHAR(2000) NOT NULL,
isScrapCheck BOOLEAN DEFAULT FALSE
);
CREATE TABLE pregnantsTable (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
date VARCHAR(255) NOT NULL,
content VARCHAR(2000) NOT NULL,
isScrapCheck BOOLEAN DEFAULT FALSE
);
SQL 문법
SELECT * FROM oldmanDisablesTable;
ALTER TABLE oldmanDisablesTable AUTO_INCREMENT = 1;
<http://localhost:8000/oldmanDisablesTable>
SELECT * FROM recipientsTable;
ALTER TABLE recipientsTable AUTO_INCREMENT = 1;
<http://localhost:8000/recipientsTable>
SELECT * FROM pregnantsTable;
ALTER TABLE pregnantsTable AUTO_INCREMENT = 1;
<http://localhost:8000/pregnantsTable>
- 구글 드라이버 설치 (크롬 버전과 동일) : https://chromedriver.chromium.org/downloads
- 크롬 현제 : 버전 114.0.5735.198(공식 빌드) (arm64)
- 크롬 드라이버 버전 : ChromeDriver 114.0.5735.90
- 주의 : 크롬 버전과 드라이버 버전은 동일해야한다.
- 웹 크롤링을 위한 라이브 러리 설명
- 기본 크롤링
# requests 패키지 가져오기
import requests
# BeautifulSoup 패키지 불러오기
# 주로 bs로 이름을 간단히 만들어서 사용함
from bs4 import BeautifulSoup as bs
# 가져올 url 문자열로 입력
url = '<https://www.naver.com>'
# requests의 get함수를 이용해 해당 url로 부터 html이 담긴 자료를 받아옴
response = requests.get(url)
# 우리가 얻고자 하는 html 문서가 여기에 담기게 됨
html_text = response.text
# html을 잘 정리된 형태로 변환
html = bs(html_text, 'html.parser')
print(html_text)
# 목표 태그 예)
<p class = "para">코딩유치원</p>
<div id = "zara">코딩유치원</p>
# 태그 이름으로 찾기
soup.find('p')
# 태그 속성(class)으로 찾기 - 2가지 형식
soup.find(class_='para') #이 형식을 사용할 때는 class 다음에 언더바_를 꼭 붙여주어야 한다
soup.find(attrs = {'class':'para'})
# 태그 속성(id)으로 찾기 - 2가지 형식
soup.find(id='zara')
soup.find(attrs = {'id':'zara'})
# 태그 이름과 속성으로 찾기
soup.find('p', class_='para')
soup.find('div', {'id' = 'zara'})
# a태그의 class 속성명이 news_tit인 태그
soup.select_one('a.news_tit')
soup.select('a.news_tit')
for i in titles:
title = i.get_text() print(title)
Fast api
https://elomaot.blogspot.com/2021/08/python-fastapi.html
conda activate base
conda install fastapi
pip install fastapi
conda install uvicorn
pip install uvicorn
# 파일 저장시 다시 서버 시작
# <http://localhost:8000>
# fast api 저장시 서버 시작
uvicorn main:app --reload
docker
#docker commit을 통해 python 을 설치한 my-python 실행 컨테이너를 이미지화 한다.
#my-python 컨테이너를 didwlsdbs/python3 이름으로 이미지로 만든다. (태그 : 1.0)
docker commit my-python didwlsdbs/python3:1.0
#이미지가 생성되었는지 확인
docker images
#docker 허브로 로그인한다
dockert login
#화면에 도커허브의 계정을 입력하는 화면이 나오고 계정을 입력하면 된다.
#docker 허브 화면에 표시되었던 push 명령어를 참고해서 push한다.
docker push didwlsdbs/python3:1.0
#docker 허브 사이트에 해당 이미지가 올라감을 확인할 수 있고,
#세팅했던 이미지를 삭제후 도커허브의 이미지를 다운받아보자.
docker rmi --force didwlsdbs/python3:1.0
docker pull didwlsdbs/python3:1.0
# 컨테이너 목록 출력
docker ps -a
# MySQL Docker 컨테이너 중지
$ docker stop mysql-container
# MySQL Docker 컨테이너 시작
$ docker start mysql-container
# MySQL Docker 컨테이너 재시작
$ docker restart mysql-container
# mySQL 컨테이너 bash 쉘 접속
docker exec -it "컨테이너 이름" bash
#----------------
도커시작
# 도커 안에서 mysql 을 실행하는 방법
mysql -u root -p
#------------------
# mysql 시작
# mysql 환경설정 확인
SHOW VARIABLES
# DATABASE을 보여주는 것
SHOW DATABASES
# DATABASE 생성
CREATE DATABASE [데이터베이스명];
초반 도커 mysql 설정 - 로컬 mysql 연동
1. 도커 설치하고 명령어 창에 등록
docker run -d -p 3306:3306 --name restAPI-DB-container -e MYSQL_DATABASE=scrollingDB -e MYSQL_USER=dmdrk1414 -e MYSQL_PASSWORD=qkrtmdcks1! -e MYSQL_ROOT_PASSWORD=qkrtmdcks1! mysql:latest
run -d \\ # 시작
> -p 3306:3306 \\ # 포트포워딩 외부접속, 도커 컨테이너 포트
> --name restAPI-DB-container \\ # 컨테이어 이름
> -e MYSQL_DATABASE=scrollingDB \\ # 데이터베이스 이름 (시작과 동시에 생성)
> -e MYSQL_USER=dmdrk1414 \\ # 일반 계정 생성
> -e MYSQL_PASSWORD=qkrtmdcks1! \\ # 일반 계정 비번
> -e MYSQL_ROOT_PASSWORD=qkrtmdcks1! \\ # root 계정 비번
mysql:latest # 버전
2. brew을 이용해 mysql 설치
<https://velog.io/@haleyjun/MySQL-Mac%EC%97%90-MySQL-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-M1%EC%B9%A9>
3. mysql 설정 (도커의 컨테이너 db와 로컬환결의 db와 연결)
./mysql -h 127.0.01 -P 3306 -u root -p
FASTAPT - MYSQL
<https://velog.io/@insutance/fastapi-connect-mysql-mongodb>
CREATE TABLE article (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
titleOfArticle VARCHAR(255) NOT NULL,
targetOfApplication VARCHAR(255) NOT NULL,
periodOfApplication VARCHAR(255) NOT NULL,
contentOfArticle VARCHAR(255) NOT NULL,
isScrapCheck BOOLEAN DEFAULT FALSE
);
INSERT INTO article (titleOfArticle, targetOfApplication, periodOfApplication, contentOfArticle)
VALUES ('Sample Title', 'Sample Target', 'Sample Period', 'Sample Content');
CREATE TABLE oldmanDisablesTable (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
date VARCHAR(255) NOT NULL,
content VARCHAR(2000) NOT NULL
isScrapCheck BOOLEAN DEFAULT FALSE
);
CREATE TABLE recipientsTable (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
date VARCHAR(255) NOT NULL,
content VARCHAR(2000) NOT NULL,
isScrapCheck BOOLEAN DEFAULT FALSE
);
CREATE TABLE pregnantsTable (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
date VARCHAR(255) NOT NULL,
content VARCHAR(2000) NOT NULL,
isScrapCheck BOOLEAN DEFAULT FALSE
);
SQL 문법
SELECT * FROM oldmanDisablesTable;
ALTER TABLE oldmanDisablesTable AUTO_INCREMENT = 1;
<http://localhost:8000/oldmanDisablesTable>
SELECT * FROM recipientsTable;
ALTER TABLE recipientsTable AUTO_INCREMENT = 1;
<http://localhost:8000/recipientsTable>
SELECT * FROM pregnantsTable;
ALTER TABLE pregnantsTable AUTO_INCREMENT = 1;
<http://localhost:8000/pregnantsTable>
'개인공부' 카테고리의 다른 글
Swagger 설치 - 스프링 부트 - 3 (0) | 2023.07.22 |
---|