巧白 2022-06-02 13:59 采纳率: 50%
浏览 74
已结题

爬取html入mysql插入失败

插入数据失败不知道哪出了问题

#!/usr/bin/python3
import requests
from bs4 import BeautifulSoup
import re
import pymysql

def create():
  db = pymysql.connect(host='127.0.0.1',  # 本地数据库
                     user='root',
                     password='1234',
                     db='123',
                     charset='utf8'
                     )  # 连接数据库
  cursor = db.cursor()
  cursor.execute("DROP TABLE IF EXISTS FUN_TEST")

  sql = """CREATE TABLE FUN_TEST (
        ID INT PRIMARY KEY AUTO_INCREMENT,
        NAME CHAR(20) NOT NULL,
        KC_NAME VARCHAR(20) NOT NULL,
        SCORE DECIMAL(4,1))"""

cursor.execute(sql)

db.close()
def insert(value):
    db = pymysql.connect(host='127.0.0.1',  # 本地数据库
                     user='root',
                     password='1234',
                     db='123',
                     charset='utf8'
                     )

    cursor = db.cursor()
    sql = "INSERT INTO FUN_TEST(NAME, KC_NAME, SCORE) " \
      "VALUES (%s, %s, %d)"
    try:
    cursor.execute(sql, value)
    db.commit()
    print('插入数据成功')
except:
    db.rollback()
    print("插入数据失败")
db.close()

create() # 创建表

re匹配需要的数据

pertern = re.compile(r'<td>(.*?)</td>', re.S)
url = 'http://localhost:8080/webapp/'
res = requests.get(url)
res.encoding = 'utf-8'
print(res.status_code)
soup = BeautifulSoup(res.text, 'html.parser')
data = soup.find_all('body')
print(data)
data = str(data)
item = re.findall(pertern, data)
print(item)
for i in item:
    print(i)
    insert(i)

F:\python\venv\Scripts\python.exe F:/python/523.py
200
[

学生javahtmlmysql
张三704060
李四905070
王五506080
周六607090
] ['学生', 'java', 'html', 'mysql', '张三', '70', '40', '60', '李四', '90', '50', '70', '王五', '50', '60', '80', '周六', '60', '70', '90'] 学生 插入数据失败 java 插入数据失败 html 插入数据失败 mysql 插入数据失败 张三 插入数据失败 70 插入数据失败 40 插入数据失败 60 插入数据失败 李四 插入数据失败 90 插入数据失败 50 插入数据失败 70 插入数据失败 王五 插入数据失败 50 插入数据失败 60 插入数据失败 80 插入数据失败 周六 插入数据失败 60 插入数据失败 70 插入数据失败 90 插入数据失败

进程已结束,退出代码0

我是学生一枚,不知道怎么解决,麻烦大家看看
html页面自己写的简单页面
希望能到数据库看到跟html页面那种效果

  • 写回答

2条回答 默认 最新

  • zpeien Android领域新星创作者 2022-06-02 14:54
    关注

    你的插入的value值和数据库表的数据格式不一致吧,你的value好像有好几个值,但是插入的数据库对应的只有三个。格式不对,所有插入数据不行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月10日
  • 已采纳回答 6月2日
  • 创建了问题 6月2日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵