91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

item 數據model保存到數據庫中

發布時間:2020-08-15 01:25:12 來源:ITPUB博客 閱讀:182 作者:Winter 欄目:編程語言

1.如何將item 數據model保存到數據庫中

  • 首先在本地創建好MySQL數據庫,再數據庫中創建好數據表

# 創建數據庫
create database item_database;
set global validate_password_length = 1;
set global validate_password_policy = 0;
grant all on item_database.* to 'xkd'@'%' identified by '123456';
flush privileges;
# 根據item創建數據表
create table item (title varchar(255) not null, image_url varchar(255) not null, date date not null, image_path varchar(255) not null, url varchar(255) not null, url_id char(50) not null primary key);

2. 安裝Python MySQL驅動


pip install mysqlclient

3. 在settings文件中修改pipeline

  • 然后爬取頁面,進行頁面解析,返回item交由settings.py文件中定義好的pipelines處理

ITEM_PIPELINES = {
   # 'XKD_Dribbble_Spider.pipelines.XkdDribbbleSpiderPipeline': 300,
   # 當items.py模塊yield之后,默認就是下載image_url的頁面
   'XKD_Dribbble_Spider.pipelines.ImagePipeline': 1,
   'XKD_Dribbble_Spider.pipelines.MysqlPipeline': 2,
}

4. 新建pipeline,寫入item到MySQL中

  • 接著在pipelines.py文件中新建一個新的pipelines類,如MysqlPipeline,在這個類中初始化數據庫連接,重寫 process_item() 方法將item的字段讀取出來,再提交到數據中表中; 最后運行項目成功后,可以使用命令行工具查看數據是否插入成功;

class MysqlPipeline:
    def __init__(self):
        self.conn = MySQLdb.connect(host='localhost', user='xkd', password='123456', database='item_database', use_unicode=True, charset='utf8')
        self.cursor = self.conn.cursor()
    def process_item(self, item, spider):
        sql = 'insert into item(title, image_url, date, image_path, url, url_id)' \
              'values (%s, %s, %s, %s, %s, %s)'
        date = item['date']
        self.cursor.execute(sql, args=(item['title'], item['image_url'], date.strftime('%y-%m-%d'), item['image_path'], item['url'], item['url_id']))
        self.conn.commit()
        return item
    def spider_closed(self, spider):
        self.cursor.close()
        self.conn.close()

5.在本地搭建MySQL數據庫的步驟

  • 先創建數據庫: create database 數據庫名;

  • 然后給用戶授權: grant all on 數據庫名.* to '用戶名'@'%' identified by '密碼';

  • 記得刷新MySQL的系統權限相關表: flush privileges;

  • 在進入創建好的數據庫根據item創建數據庫表: create table item(字段);

6.查看數據庫表

  • 首先登錄MySQL數據庫,命令行: mysql -u用戶名 -p密碼;

  • 然后選擇我們創建的數據庫,命令行: use 數據庫名;

  • 然后就可以查看數據庫表是否成功插入數據,命令行: select * from item;

  • 當數據庫表中數據很多的時候,我們可以在查詢語句末尾加入一個 \G 參數,橫向的表結構會轉為使用縱向表結構輸出,利于閱讀;

參考: https://www.9xkd.com/user/plan-view.html?id=1693196261

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莱西市| 普格县| 五台县| 桃园县| 全椒县| 无棣县| 东山县| 历史| 宜宾市| 察雅县| 林甸县| 苏尼特右旗| 武安市| 隆化县| 三亚市| 泸溪县| 镶黄旗| 宜丰县| 旬阳县| 隆尧县| 汤阴县| 望城县| 保靖县| 儋州市| 海南省| 那坡县| 楚雄市| 绵阳市| 临沂市| 分宜县| 辽阳县| 建瓯市| 建平县| 通海县| 郁南县| 吕梁市| 广平县| 桂平市| 勃利县| 龙陵县| 莒南县|