1、打开MySQL 8.0 Command Line Client终端
输入密码后创建数据库
create database Book charset=utf8;
Book为自定义数据库的名称
再输入use Book;进入数据库
创建表:
定义字段,设定字段的名称,类型及长度(长度够用即可)
2、python连接mysql
在py文件中定义如下,需要安装pymysql
在终端中进入相应地址使用清华源进行下载:pip intsall pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
import pymysql
下载完之后有可能会出现import pymysql没问题,但是在终端运行时会出现ModuleNotFoundError: No module named 'pymysql'的错误
原因:找不到包,需要手动添加地址,找到pymysql安装的地址,在py文件中添加下列代码,其中的地址即为你的pymysql包安装的地址
import sys
sys.path.append(r'D:\E\Anaconda3\envs\spider\Lib\site-packages')
然后定义数据库的相关参数进行连接,数据库的参数有很多,我使用的是下列6个,localhost即为本地服务器,不需要修改。port=3306为固定端口号,也不需要修改
host='localhost'
port=3306
user='用户名'
password='密码'
name='创建的数据库名称'
charset='utf8'
conn=pymysql.connect(
host=host,
port=port,
user=user,
password=password,
db=name,
charset=charset
)
定义mysql需要注入的语句book为表,参数有name,src,values即为对应值,通过循环即可将数据逐一保存
sql='insert into book(name,src) values("{}","{}")'.format(name_list[i],src_list[i])
最后部分,即可将你的数据存入数据库中
conn.cursor.execute(sql)
conn.commit()#提交
conn.close()#最后关闭
3查看
在mysql终端通过下列语句查看数据是否存入
select * from book;
附加:爬虫部分,简单步骤如下
使用requests模块
import requests
url='https://www.dushu.com/book/1085_1.html'
#请求头
headers={
'User-Agent': '***'#通过网页源码查看
}
response=requests.get(url=url,headers=headers)#获取响应
content=response.text#获取源码
from lxml import etree
tree=etree.HTML(content)
#使用xpath查找所需要的内容
name_list=tree.xpath('//div[@class="bookslist"]//img/@alt')
src_list=tree.xpath('//div[@class="bookslist"]//img/@data-original')
上述得到的是图片的名称和地址
如果想要保存图片到本地,可以使用urllib模块
import urllib.request
for src,name in zip(src_list,name_list):
src='https:'+src#查看url是否完整,若不完整再添加
name='./文件夹名称/'+name+'.jpg'
urllib.request.urlretrieve(url=src,filename=name)
完整代码:
import requests
url='https://www.dushu.com/book/1085_1.html'
#请求头
headers={
'User-Agent': '***'通过源码查看请求头
}
response=requests.get(url=url,headers=headers)#获取响应
content=response.text#获取源码
from lxml import etree
tree=etree.HTML(content)
#使用xpath查找所需要的内容
name_list=tree.xpath('//div[@class="bookslist"]//img/@alt')
src_list=tree.xpath('//div[@class="bookslist"]//img/@data-original')
import pymysql
#如果可以正常使用PyMySQL,即可不要添加下列代码
import sys
sys.path.append(r'D:\E\Anaconda3\envs\spider\Lib\site-packages')#地址修改成你自己的
host='localhost'
port=3306
user='用户名'
password='密码'
name='创建的数据库名称'
charset='utf8'
conn=pymysql.connect(
host=host,
port=port,
user=user,
password=password,
db=name,
charset=charset
)
for i,src,name in zip(range(len(name_list)),src_list,name_list):
print(i,name_list[i],src_list[i])
sql='insert into book(name,src) values("{}","{}")'.format(name_list[i],src_list[i])
conn.cursor().execute(sql)
conn.commit()#提交
conn.close()#最后关闭
如何查看请求头:
打开网页,右键检查,CTRL+R,刷新页面,点击Network,一般第一个html就是当前页面
往下滑最后一个即为User-Agent
注:第一次发blog,有什么错误的地方请见谅,希望对您有帮助