반응형
beautifulsoup : 뷰티풀수프
전에 작업한 my_flask.py 파일을 이용한다.
해당 파일을 실행 후 localhost로 확인 > 켜 놓은 상태로 추가 파일을 만들어 진행한다.
my_flask.py
from flask import Flask,request,render_template
from day08.daoemp import Daoemp
app = Flask(__name__)
@app.route('/')
@app.route('/emp_list')
def emp_list():
de = Daoemp()
list = de.selectList()
return render_template("emp_list.html", list=list)
@app.route('/emp_detail')
def emp_detail():
e_id = request.args.get('e_id')
de = Daoemp()
vo = de.select(e_id)
return render_template("emp_detail.html", vo=vo)
@app.route('/emp_mod')
def emp_mod():
e_id = request.args.get('e_id')
de = Daoemp()
vo = de.select(e_id)
return render_template("emp_mod.html", vo=vo)
@app.route('/emp_mod_act', methods=['POST']) # post 선언하지 않을 시 오류남
def emp_mod_act():
e_id = request.form['e_id']
e_name = request.form['e_name']
gen = request.form['gen']
addr = request.form['addr']
de = Daoemp()
cnt = de.update(e_id, e_name, gen, addr)
return render_template("emp_mod_act.html", cnt=cnt)
@app.route('/emp_add')
def emp_add():
return render_template("emp_add.html")
@app.route('/emp_add_act', methods=['POST'])
def emp_add_act():
e_id = request.form['e_id']
e_name = request.form['e_name']
gen = request.form['gen']
addr = request.form['addr']
de = Daoemp()
cnt = de.insert(e_id, e_name, gen, addr)
return render_template("emp_add_act.html", cnt=cnt)
@app.route('/emp_del', methods=['POST'])
def emp_del():
e_id = request.form['e_id']
print(e_id)
de = Daoemp()
cnt = de.delete(e_id)
return render_template("emp_del.html", cnt=cnt)
if __name__ == '__main__':
app.run(debug=True, port=80, host='0.0.0.0')
mybs01.py
import requests
from bs4 import BeautifulSoup
res = requests.get('http://127.0.0.1')
html = res.text
print(html)
DOM 객체 가져오기 : find, find_all
find와 find_all은 비슷하지만
find는 가장 처음 하나만 찾아오고
find_all은 전부를 찾아온다. (배열 형태로 가져옴)
mybs01.py
import requests
from bs4 import BeautifulSoup
res = requests.get('http://127.0.0.1')
soup = BeautifulSoup(res.text, "lxml")
print(res.text)
print("--------------------------------------------------------")
print(soup)
print("--------------------------------------------------------")
print(soup.find('table'))
# print(soup.find_all('table')[0]) # 같음
print("--------------------------------------------------------")
print(soup.find('table').find('tr'))
# print(soup.find_all('table')[0].find_all('tr')[0]) # 위와 같음
print("--------------------------------------------------------")
print(soup.find_all('table'))
- 데이터 값인 이름과 주소만 출력하기
mybs02.py
import requests
from bs4 import BeautifulSoup
res = requests.get('http://127.0.0.1')
soup = BeautifulSoup(res.text, "lxml")
print(res.text)
print("--------------------------------------------------------")
trs = soup.find_all('tr')
print(trs)
print("--------------------------------------------------------")
for idx,tr in enumerate(trs):
if idx == 0 :
continue
tds = tr.find_all('td')
myname = tds[1].text
addr = tds[3].text
print("{}\t{}".format(myname,addr))
DOM 객체 가져오기 : select
find_all 과 select가 비슷하며
find와 select_one와 비슷하다.
mybs03.py
import requests
from bs4 import BeautifulSoup
res = requests.get('http://127.0.0.1')
soup = BeautifulSoup(res.text, "lxml")
# print(res.text)
# print("--------------------------------------------------------")
# print(soup.select_one('tr')) #아래와 같음
# print(soup.find_all('tr'))
print("--------------------------------------------------------")
trs = soup.select('tr')
print(trs)
print("--------------------------------------------------------")
for idx,tr in enumerate(trs):
if idx == 0 :
continue
tds = tr.select('td')
myname = tds[1].text
addr = tds[3].text
print("{}\t{}".format(myname,addr))
반응형
'Python' 카테고리의 다른 글
[Python] 33장 크롤링 예시1 (1) | 2024.04.18 |
---|---|
[Python] 32장 네이버 개발자 이용하여 크롤링하기 (1) | 2024.04.17 |
[Python] 30장 아마존에 flask 서버 올리기2 (aws 이용) (0) | 2024.04.16 |
[Python] 29장 아마존에 flask 서버 올리기1 (aws 이용) (0) | 2024.04.16 |
[Python] 28장 쿠버네티스 설치 및 삭제 (0) | 2024.04.15 |