前言
今天用一个实际案例来演示怎样将爬虫提取到的数据保存到MySQL中,
我们需要将如下内容(红框中)保存至MySQL中。
#
一、用到的python模块
import requests #网络请求模块
from parsel import Selector #数据解析模块
import pymysql #python操作MySQL的模块
二、分析网页
先打开开发者工具抓包
分析得知该网络请求的响应为静态内容且没有请求参数加密
尝试用插件提取所需数据
三. 用代码创建数据库
db = pymysql.connect(host='localhost',user='root',password='密码',port=3306,database='ceshi1')
cursor = db.cursor()
sql = 'create table 红楼梦 (标题 char(50),品类 char(25),书店 char(25),地址 char(25),价格 char(25))'
try:
cursor.execute(sql)
print('创建数据库成功')
except Exception as e:
print('创建数据库失败')
四.发送请求并解析数据
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'
}
url = 'https://item.kongfz.com/book/51144142.html'
res = requests.get(url=url,headers=headers).text
selector = Selector(res)
lis = selector.xpath('//ul[@class="itemList"]/li')
data = []
for li in lis:
info = {
'title' : li.xpath('./div[2]/a/text()').get(),
'category' : li.xpath('./div[4]/text()').get(),
'bookstore' : li.xpath('./div[5]/div[1]/a/text()').get().strip('\n, '),
'site' : li.xpath('./div[5]/div[2]/text()').get(),
'price' : li.xpath('./div[6]/div[1]/span/text()').get()
}
data.append(info)
五.写入MySQL
for i in data:
title = i['title']
category = i['category']
bookstore = i['bookstore']
site = i['site']
price = i['price']
sql_1 = "insert into 红楼梦(标题,品类,书店,地址,价格) value (%s,%s,%s,%s,%s)"
try:
cursor.execute(sql_1,(title,category,bookstore,site,price))
db.commit()
except Exception as e:
print(e)
print('数据写入失败')
cursor.close()
db.close()
在图形化软件中查看结果
总结
本案例展示了如何将爬虫提取的结果写入MySQL中,感兴趣的小伙伴赶快去试试吧。