本文目录
内容简介:
本文将爬取的内容存入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列数据
INSERT 插入
books 是我建立的一个表格
ID, BOOKNAME, NUMBER 即为三个表头
四、将爬取的内容写入:
1、爬取目标:标题
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
4、爬取内容如下: