Python爬取数据保存到数据库怎么做?Python爬虫抓取数据如何保存到数据库

【Python爬取数据保存到数据库怎么做?Python爬虫抓取数据如何保存到数据库】python爬虫程序抓取数据返回之后是需要保存到文件或者是数据库之中的 , 而保存到数据库里面的话就需要经过一些其他处理了 。下文会以爬虫抓取数据返回 , 并且保存到mysql数据库为示例来详细讲解python爬取数据保存到数据库是如何实现的 。

Python爬取数据保存到数据库怎么做?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()

推荐阅读