什么是MySQLdb?
MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。
Python3无法使用pip install MySQLdb命令安装MySQLdb,需要下载whl包,网址:https://pypi.org/project/mysqlclient/#files
根据Python3.x的版本选择下载即可
下载完成后,在存放根目录输入cmd
执行命令 pip install mysqlclient-2.1.0-cp310-cp310-win_amd64.whl
安装完成后就可以开始了,我上篇文章有写爬虫代码,直接搬用一下,加上数据库就行
代码如下:
#导入模块
import MySQLdb
import requests
import re
#设置数据库信息,建立连接
conn = MySQLdb.connect(
#连接主机ip
host = '127.0.0.1',
#数据库端口,默认3306
port = 3306,
#数据库用户名
user = '####',
#数据库密码
passwd = '####',
#数据库名
db = '####',
)
cus = conn.cursor()
#爬取目标url
url = 'https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start='
def shu(url):
headers = {
'Host': 'book.douban.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Accept-Encoding': 'gzip, deflate',
}
r = requests.get(url=url, headers=headers)
data = r.text
#设置正则匹配,获取需要信息
title = re.findall(r'title="(.*?)"', data)
#for循环
for i in range(1,20):
#设置sql语句
sql = "insert into book (book) values ('%s')"%(title[i])
#执行sql语句
cus.execute(sql)
#print (title)
ra = [0,20,40,60,80,100,120,140,160,180]
for i in range(0,9):
urla = url + str(ra[i]) + '&type=T'
shu(urla)
conn.commit()
好了,就是这么简单,如果想要更快的爬取信息,就需要设置多线程了,多线程我后面会写到,期待你的点赞关注