【Python爬取数据保存到数据库怎么做?Python爬虫抓取数据如何保存到数据库】python爬虫程序抓取数据返回之后是需要保存到文件或者是数据库之中的 , 而保存到数据库里面的话就需要经过一些其他处理了 。下文会以爬虫抓取数据返回 , 并且保存到mysql数据库为示例来详细讲解python爬取数据保存到数据库是如何实现的 。
文章插图
一、定义类
因为mysql这种数据库是关系型数据库 , 它保存数据库都是以字段来划分的 。所以在定义好数据表结构之后 , 在python中还得创建出来一个和列名数量相同的类出来才可以 , 代码示例如下所示:
# 导入模块import requestsfrom lxml import etreeimport pymysql# 定义类class articleData(): def __init__(self, title, abstract, path,date): self.title = title self.abstract = abstract self.path = path self.date = date在这个类中总共是有四个属性 , 它也就对应着数据表里面的四个字段 。
二、定义数据保存函数
那么第二步就是要定义一个数据保存函数了 , 该函数需要将类实例对象给传递进来 。然后在函数中创建mysql数据库库连接对象以及游标 , 再调用execute()方法并且传入insert这种添加数据的sql语句即可 。最后还需要提交修改请求并关闭连接 , 代码如下所示:
def saveData(DataObject): count = pymysql.connect(host='localhost',port=3306,user='root',password='123456',db='test' ) db = count.cursor() sql = f"insert into article_detail(title,abstract,path,date) " \ f"values ('{DataObject.title}','{DataObject.abstract}','{DataObject.path}','{DataObject.date}')" db.execute(sql) count.commit() db.close()三、定义数据爬取函数
那么数据保存函数以及用来映射数据库结构的类都创建好之后 , 最后要做的就是爬取数据并且将其处理成类实例对象了 。调用get()方法访问网页之后返回数据 , 然后用xpat库解析数据后通过节点来得到数据 , 最后实例化成类对象并且调用saveData()这个保存爬虫数据到数据库的方法即可 , 详细代码示例如下所示:
def getWebData(): url = "https://blog.csdn.netin?spm=10001.5343" html = requests.get(url=url, headers=header) etreeHtml = etree.HTML(html.text) dataHtml = etreeHtml.xpath('//*[@class="mainContent"]/div/div/div') for _ in dataHtml: title = ''.join(_.xpath('./article/a/div[1]/h4/text()')) abstract = ''.join(_.xpath('./article/a/div[2]/text()')) path = ''.join(_.xpath('./article/a/@href')) date = ''.join(_.xpath('./article/a/div[3]/div/div[2]/text()')).replace(' ','').replace('·','').replace('发布博客','') article_data = articleData(title,abstract,path,date) saveData(article_data)if __name__ == "__main__": getWebData()
推荐阅读
- VScode怎么设置默认Python解释器?VScode编辑器如何更换默认Python版本
- VScode如何添加Python解释器?VScode怎么配置python解释器路径
- VScode新建python项目怎么做?VScode编辑器如何配置python项目环境
- Python怎么使用变量?Python使用变量方法
- Python怎么定义字符串?Python定义字符串教程
- Python中安装whl格式文件的方法是什么?安装whl格式文件的详细操作流程
- 如何快速求和wps表格数据?wps表格数据怎么求和?
- 数据大本营
- 数据库系统工程师会难考吗 请高人指点下。。非常非常的感谢。。
- 硬盘数据恢复详细步骤 硬盘数据恢复方法介绍