在Python中,數據存儲方式分為同步存儲和異步存儲。同步寫入速度比較慢,而爬蟲速度比較快,有可能導致數據保存不完整,一部分數據沒有入庫。而異步可以將爬蟲和寫入數據庫操作分開執行,互不影響,所以寫入速度比較快,能夠保證數據的完整性。
在涪陵等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供成都網站設計、網站制作 網站設計制作定制網站設計,公司網站建設,企業網站建設,品牌網站建設,網絡營銷推廣,成都外貿網站建設公司,涪陵網站建設費用合理。異步存儲數據庫大致看分為以下步驟:
1. 在settings中配置Mysql鏈接需要的參數(主機地址、用戶賬號、密碼、需要操作的表名、編碼格式等)
2. 自定義Pipeline,實現from_settings函數
3. from twisted.enterprise import adbapi 引入連接池模塊
4. from pymysql import cursors 引入游標模塊
5. 在from_settings中,準備鏈接數據庫參數,創建db_pool連接池,創建返回當前類的對象,傳入db_pool
6. 實現初始化函數,在初始化函數中,將db_pool賦值self的屬性
7. 實現process_item函數
7.1 query = self.db_pool.runInteraction(執行插入數據操作的函數對象,函數需要參數),并接受執行返回結果
7.2 query.addErrback(錯誤回調函數,函數需要參數),添加執行sql失敗回調的函數,在回調函數中對錯誤數據進一步處理
8. 實現插入數據操作的函數,準備sql,執行sql
9. 實現錯誤回調函數,在回調函數中對錯誤數據進一步處理
下面,我們以天堂圖片網為例,大致熟悉一下異步存儲:
1. 在存儲之前,可以選擇手動創建數據庫(表名、字段名、字段類型等自己定義),也可以選擇代碼創建。
2. 存儲數據之前還得先拿到數據
import scrapy from ..items import ImgItem class IvskySpider(scrapy.Spider): name = 'ivsky' allowed_domains = ['ivsky.com'] start_urls = ['http://www.ivsky.com/tupian/ziranfengguang/'] def parse(self, response): imgs = response.xpath('//div[@class="il_img"]/a/img') for img in imgs: alt = img.xpath('@alt').extract_first('') src = img.xpath('@src').extract_first('') item = ImgItem() item['alt'] = alt item['src'] = src yield item
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享標題:python異步存儲數據詳解-創新互聯
標題鏈接:http://m.newbst.com/article35/dhcisi.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、網頁設計公司、自適應網站、外貿網站建設、網站設計公司、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯