Python 에서 데 이 터 를 추출 하고 MySQL 데이터베이스 에 기록 하 는 실례
F12 또는 ctrl+u 에 따라 요 소 를 심사 한 결 과 는 다음 과 같 습 니 다.
구조 가 매우 뚜렷 하고 간단 합 니 다.우 리 는 tr 태그 안의 style 과 tr 아래 에 있 는 몇 개의 병렬 td 라벨 을 오 르 려 고 합 니 다.다음은 오 르 는 코드 입 니 다.
#!/usr/bin/env python
# coding=utf-8
import requests
from bs4 import BeautifulSoup
import MySQLdb
print(' mysql ...')
db = MySQLdb.connect("localhost","hp","Hp12345.","TESTDB")
print(' !')
cursor = db.cursor()
cursor.execute("DROP TABLE IF EXISTS COLOR")
sql = """CREATE TABLE COLOR (
Color CHAR(20) NOT NULL,
Value CHAR(10),
Style CHAR(50) )"""
cursor.execute(sql)
hdrs = {'User-Agent':'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)'}
url = "http://html-color-codes.info/color-names/"
r = requests.get(url, headers = hdrs)
soup = BeautifulSoup(r.content.decode('gbk', 'ignore'), 'lxml')
trs = soup.find_all('tr') # tr
for tr in trs: # tr
style = tr.get('style') # tr style
tds = tr.find_all('td') # tr td
td = [x for x in tds] #
name = td[1].text.strip() #
hex = td[2].text.strip()
# print u' : ' + name + u' : '+ hex + u' : ' + style
# print 'color: ' + name + '\tvalue: '+ hex + '\tstyle: ' + style
insert_color = ("INSERT INTO COLOR(Color,Value,Style)" "VALUES(%s,%s,%s)")
data_color = (name, hex, style)
cursor.execute(insert_color, data_color)
db.commit()
# print '****** !'
print ' mysql ...'
실행 결과:
$ mysql -u hp -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.7.17 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use TESTDB
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from COLOR;
+----------------------+--------+----------------------------------------+
| Color | Value | Style |
+----------------------+--------+----------------------------------------+
| IndianRed | CD5C5C | background-color:indianred; |
| LightCoral | F08080 | background-color:lightcoral; |
| Salmon | FA8072 | background-color:salmon; |
| DarkSalmon | E9967A | background-color:darksalmon; |
| LightSalmon | FFA07A | background-color:lightsalmon; |
| Crimson | DC143C | background-color:crimson; |
| Red | FF0000 | background-color:red; |
| FireBrick | B22222 | background-color:fireBrick; |
| DarkRed | 8B0000 | background-color:darkred; |
| Pink | FFC0CB | background-color:pink; |
| LightPink | FFB6C1 | background-color:lightpink; |
| HotPink | FF69B4 | background-color:hotpink; |
| DeepPink | FF1493 | background-color:deeppink; |
...
| AntiqueWhite | FAEBD7 | background-color:antiquewhite; |
| Linen | FAF0E6 | background-color:linen; |
| LavenderBlush | FFF0F5 | background-color:lavenderblush; |
| MistyRose | FFE4E1 | background-color:mistyrose; |
| Gainsboro | DCDCDC | background-color:gainsboro; |
| LightGrey | D3D3D3 | background-color:lightgrey; |
| Silver | C0C0C0 | background-color:silver; |
| DarkGray | A9A9A9 | background-color:darkgray; |
| Gray | 808080 | background-color:gray; |
| DimGray | 696969 | background-color:dimgray; |
| LightSlateGray | 778899 | background-color:lightslategray; |
| SlateGray | 708090 | background-color:slategray; |
| DarkSlateGray | 2F4F4F | background-color:darkslategray; |
| Black | 000000 | background-color:black; |
+----------------------+--------+----------------------------------------+
143 rows in set (0.00 sec)
이 Python 에서 데 이 터 를 추출 하여 MySQL 데이터 베 이 스 를 기록 한 인 스 턴 스 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.