(大數據挖掘—(七):讀懂MySql數據庫操作)(大數據挖掘神器——scrapy spider爬蟲框架(五):解析多層網頁)
通過往期的文章分享,我們了解了如何爬取想要的數據到Items中,也了解了如何操作MySQL數據庫,那么我們繼續完善我們的爬蟲代碼,把爬取的items,保存到MySQL數據庫中。
scrapy構架
為了方便操作,我們自己新建一個mysqlpipelines文件夾,編寫自己的pipelines.py文件,來運行保存items,在此文件夾下新建sql.py來編寫我們保存數據庫的sql語句。
編寫sql語句
打開sql.py 編寫代碼,首先要連接數據庫
import pymysql.cursors
# 連接數據庫
connect = pymysql.Connect(host=MYSQL_HOSTS,port=MYSQL_PORT,user=MYSQL_USER,passwd=MYSQL_PASSWORD, db=MYSQL_DB,charset='utf8'
)
cursor = connect.cursor()# 獲取游標
print('連接數據庫OK')數據庫連接ok后,我們打印一下,以便測試
新建一個類,編寫sql語句
class my_sql:@classmethod #插入數據def insert_data(cls,novelname,author,category,nameid,status,num,url):...................................................................................@classmethod #判斷數據是否存在def select_name(cls,novelname):................................................................................@classmethod # 更新數據def update_data(cls,author,category,nameid,status,num,url,novelname):................................................................................@classmethod # close sqldef close_sql(cls):cursor.close()connect.close()print('數據庫斷開連接OK')類中我們定義了插入,更新,查詢的基本sql語句,最后定義一個關閉數據庫的操作,中間操作數據庫的詳細代碼請參考往期文件。
編寫pipelines
from myproject.mysqlpipelines.sql import my_sql
from myproject.items import PowersItem
#插入新建的sql與item定義pipelines
class Powerspipeline(object):def process_item(self,item,spider):if isinstance(item,PowersItem):#判斷item是否存在novelname=item['novelname']author = item['author']category = item['category']nameid = item['nameid']status = item['status']num = item['num']url = item['novelurl']
#以上獲取爬取的數據ret=my_sql.select_name(novelname)#判斷數據是否存在在數據庫中if ret[0]==1:#已經存在print('已經存在,等待更新')
#若數據庫中有以前的數據,更新數據庫my_sql.update_data(author,category,nameid,status,num,url,novelname)passelse:
#若數據庫中沒有數據,保存itemprint('開始保存')my_sql.insert_data(novelname,author,category,nameid,status,num,url)else :print('no find items')return item通過以上的操作我們爬蟲的所有代碼就完成了,運行代碼就可以從數據庫中,看到保存的數據
由于我調試過一次,已經有的數據,再次運行程序時,就會更新數據庫。
保存的數據
下期預告:
關于爬蟲的內容還有很多,下期我們分享一下爬蟲解析網頁的一個利器,正則表達式
微信搜索小程序:AI人工智能工具
體驗不一樣 的AI工具
總結
以上是生活随笔為你收集整理的mysql打印语句_大数据挖掘—(八):scrapy爬取数据保存到MySql数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。