使用Scrapy爬取圖片入庫,並儲存在本地

大夢不黑發表於2019-06-27

使用Scrapy爬取圖片入庫,並儲存在本地

篇部落格已經簡單的介紹了爬取資料流程,現在讓我們繼續學習scrapy

 

 

目標:

爬取愛卡汽車標題,價格以及圖片存入資料庫,並存圖到本地

 

好了不多說,讓我們實現下效果

 

我們仍用scrapy框架來編寫我們的專案:

 

1.首先用命令建立一個爬蟲專案(結合上篇部落格),併到你的專案裡如圖所示

 

 

2.先到你的settings.py中配置 ,這裡需要注意要 爬圖(配置一個爬圖管道 ImagesPipeline 為系統中下載圖片的管道),

同時還有存圖地址(在專案中建立一個為images的資料夾),

存圖有多種方式,本人只是列舉其中一種,大家可採取不同的方法

 

 

3.然後開啟你的爬蟲檔案(即:car.py)開始編寫你要爬取的資料,這裡需要注意,要將start_urls[] 改為我們要爬取的Url 地址,然後根據xpath爬取圖片 
(這裡程式碼得自己寫,不要複製)
 

 

 4.爬取的欄位要跟   items.py裡的一致

 

 

5.在命令列輸入啟動爬蟲命令 scrapy crawl car  執行就能看到爬到圖片存放在本地如下

6.最後入庫,看你要入那個庫,這裡可入mysql和mongdb

 

mysql:  需提前創好庫以及表,表中欄位

import pymysql
# class NewcarPipeline(object):
    # 連線mysql改為你的使用者密碼以及自己的庫
    # def __init__(self):
    #     self.conn = pymysql.connect(host='127.0.0.1',user='root', password='123456', db='zou')
        # 建立cursor物件
    #     self.cursor = self.conn.cursor()
    #
        # 傳值
    # def process_item(self, item, spider):
    #     name = item['name']
    #     content = item['content']
    #     price = item['price']
    #     image = item['image_urls']
    #
        # insert into 你的表名,括號裡面是你的欄位要一一對應
        
    #     sql = "insert into zou(name,content,price) values(%s,%s,%s)"
    #     self.cursor.execute(sql, (name,content,price))
    #     self.conn.commit()
    #     return item
    #關閉爬蟲
    # def close_spider(self, spider):
    #     self.conn.close()

 

mongdb:   不用提前建好庫,表

from pymongo import MongoClient
# class NewcarPipeline(object):
#     def open_spider(self, spider):
#         #     連埠 ip
#         self.con = MongoClient(host='127.0.0.1', port=27017)
#         #     庫
#         db = self.con['p1']
#         # 授權
#         self.con = db.authenticate(name='wumeng', password='123456', source='admin')
#         #     集合
#         self.coll = db[spider.name]

#     def process_item(self, item, spider):
#         # 新增資料
#         self.coll.insert_one(dict(item))
#         return item

#     def close_spider(self):
#         # 關閉
#         self.con.close()

 

7.執行 啟動爬蟲命令 scrapy crawl car 就可在庫中看到資料.

 

 

至此爬蟲專案做完了,這只是一個簡單的爬蟲,僅供參考,如遇其他方面的問題,可參考本人部落格!盡情期待!

 

相關文章