【爬虫】将爬取的内容写入MySQL数据库

本文目录

 

内容简介:

一、什么是MySQLdb?

二、如何安装MySQLdb?

三、基本操作

插入

 四、将爬取的内容写入:

1、爬取目标:标题

2、分析

3、代码如下:

4、爬取内容如下:


 

 

内容简介:

本文将爬取的内容存入sql数据库

简单介绍了以下MySqldb

一、什么是MySQLdb?

MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。

二、如何安装MySQLdb?

这里不做详细介绍

详情可看:Python 操作 MySQL 数据库 | 菜鸟教程 (runoob.com)

 

三、基本操作

常见的几种操作有增查删改,这里只说明以下插入操作

插入

import MySQLdb
#  fxx表格的books

# 打开数据库连接
conn = MySQLdb.connect(host='localhost', user='xxxx', password='xxxxxx',db='fxx')
# connect()参数 host、user是用户名,password是密码、fxx是一个“架构“

# 使用cursor()方法获取操作游标
cur = conn.cursor()

# 使用execute方法执行SQL语句
cur.execute("insert into books (ID, BOOKNAME, NUMBER) VALUES ('12','重生之我在海洋当虾头鸡',100)")

# 关闭
cur.close()
# 提交事务
conn.commit()
# 关闭数据库连接
conn.close()
print('插入操作成功!')

上面代码中sql语句是:

"insert into books (ID, BOOKNAME, NUMBER) VALUES ('12','重生之我在海洋当虾头鸡',100)"

意思是向表格 “books”插入一列数据

如下的12列数据

f5dd47ed0b9f467aa0c2dc12a9b9f615.png 

INSERT 插入

books 是我建立的一个表格

3cd35e52b5b8460f8298e5792b01a52b.png

ID, BOOKNAME, NUMBER 即为三个表头

 9b649da35c274bae88551d3bb08888b5.png

 四、将爬取的内容写入:

1、爬取目标:标题

ffe362bfa00d40f7ad9f396881adcb5b.png

2、分析

可见,标题都存放在:

<a style="vertical-align: middle; " href="problem.php?id=1000">网络寻路</a> 

第一页的题目标号从1000开始到1050

我们这里直接采用从1000每做一次插入操作递增加1

3、代码如下:

'''
爬取uscOJ题目的编号和题目名存入sql数据库表格
fxx的表格02sql
'''
import requests
from bs4 import BeautifulSoup
import MySQLdb

conn = MySQLdb.connect(host='localhost', user='xxxx', password='xxxx', db='fxx')
# 获取游标
cur = conn.cursor()
# 网址
link = "http://101.132.172.57/problemset.php"
# 头文件
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit   xxxxxxx'
}
# get方式
r = requests.get(link, headers=headers).content.decode('utf-8')
soup = BeautifulSoup(r, 'lxml')

t = soup.find_all('a', style='vertical-align: middle; ')
li = []
for i in range(0, len(t)):
    li.append(t[i].text)
print(li)
Id = 1001
for each in li:
    cur.execute("insert into 02sql (id, name) VALUE (%s,%s)", (Id, each))
    Id += 1

cur.close()
conn.commit()
conn.close()
print("操作成功")

表格:02sql

72aaf5d749e940cdbe12a253ce00d1b0.png

4、爬取内容如下:

5603112dbfb64ce39b0dcef483a33308.png

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值