python爬虫数据保存到mongoDB的实例方法
爬虫数据保存到mongoDB的方法:
import pymongo
# 首先需要注意,mongodb数据库存储的类型是以键值对类型进行存储,所以在存储以前一定要进行数据筛选
def save_mongo(传入的数据):
# 创建连接 因为使用的为本机数据库,所以IP写localhost即可,端口号为27017
client = 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-8
importre
importrequests
fromlxmlimportetree
importpymongo
importsys
reload(sys)
sys.setdefaultencoding('utf-8')
defgetpages(url,total):
nowpage=int(re.search('(\d+)',url,re.S).group(1))
urls=[]
foriinrange(nowpage,total+1):
link=re.sub('(\d+)','%s'%i,url,re.S)
urls.append(link)
returnurls
defspider(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)
defsaveinfo(book_name,book_author):
connection=pymongo.MongoClient()
BookDB=connection.BookDB
BookTable=BookDB.books
length=len(book_name)
foriinrange(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)
foreachinurls:
spider(each)
以上就是python爬虫数据保存到mongoDB的实例方法的详细内容,更多关于爬虫数据如何保存到mongoDB的资料请关注毛票票其它相关文章!