python爬蟲數據保存到mongoDB的實例方法
爬蟲數據保存到mongoDB的方法:
import pymongo# 首先需要注意,mongodb數據庫存儲的類型是以鍵值對類型進行存儲,所以在存儲以前一定要進行數據篩選def save_mongo(傳入的數據):# 創建連接 因為使用的為本機數據庫,所以IP寫localhost即可,端口號為27017client = pymongo.MongoClient(’localhost’,27017)# 連接數據庫(這里注意一點,mongo數據庫有一個優點,就是當自己連接的數據庫和表都沒有的時候,會自動創建,所以不用擔心寫錯或者沒有表)db = client[’自己創建數據庫名’]# 連接表collection = db[’自己的表名(mongo中叫做集合)’]# 插入到數據庫中(這里使用dict進行強制轉換,是為了保證數據為字典格式)collection.insert(dict(傳入的數據))
mongoDB介紹:
它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:
*面向集合存儲,易存儲對象類型的數據。
*模式自由。
*支持動態查詢。
*支持完全索引,包含內部對象。
*支持查詢。
*支持復制和故障恢復。
*使用高效的二進制數據存儲,包括大型對象(如視頻等)。
*自動處理碎片,以支持云計算層次的擴展性。
*支持 Golang,RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
*文件存儲格式為BSON(一種JSON的擴展)。
*可通過網絡訪問。
實例擴展:
# coding=utf-8import reimport requestsfrom lxml import etreeimport pymongoimport sysreload(sys)sys.setdefaultencoding(’utf-8’)def getpages(url, total): nowpage = int(re.search(’(d+)’, url, re.S).group(1)) urls = [] for i in range(nowpage, total + 1): link = re.sub(’(d+)’, ’%s’ % i, url, re.S) urls.append(link) return urlsdef spider(url): html = requests.get(url) selector = etree.HTML(html.text) book_name = selector.xpath(’//*[@id='container']/ul/li//div/div[2]/a/text()’) book_author = selector.xpath(’//*[@id='container']/ul/li//div/div[2]/div/a/text()’) saveinfo(book_name, book_author)def saveinfo(book_name, book_author): connection = pymongo.MongoClient() BookDB = connection.BookDB BookTable = BookDB.books length = len(book_name) for i in range(0, length): books = {} books[’name’] = str(book_name[i]).replace(’n’,’’) books[’author’] = str(book_author[i]).replace(’n’,’’) BookTable.insert_one(books)if __name__ == ’__main__’: url = ’http://readfree.me/shuffle/?page=1’ urls = getpages(url,3) for each in urls: spider(each)
以上就是python爬蟲數據保存到mongoDB的實例方法的詳細內容,更多關于爬蟲數據如何保存到mongoDB的資料請關注好吧啦網其它相關文章!
相關文章:
1. ASP中常用的22個FSO文件操作函數整理2. 無線標記語言(WML)基礎之WMLScript 基礎第1/2頁3. ASP調用WebService轉化成JSON數據,附json.min.asp4. .Net core 的熱插拔機制的深入探索及卸載問題求救指南5. SharePoint Server 2019新特性介紹6. html清除浮動的6種方法示例7. asp的SQL語句中and和or同時使用的注意事項8. 讀大數據量的XML文件的讀取問題9. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執行過程解析10. React+umi+typeScript創建項目的過程
