安装MongoDB:
www.mongodb.com/download-center#community下载.msi安装包→
自定义安装时把路径首的盘符C改为D,其他如Server\3.x等等都不要改→
手动创建俩目录(日志D:\Program Files\MongoDB\log\mongodb.log;数据D:\Program Files\MongoDB\data)→
D:\Program Files\MongoDB\Server\3.4\bin下按Shift+右键进入命令窗口→
mongod --logpath "D:\Program Files\MongoDB\log\mongodb.log" --dbpath "D:\Program Files\MongoDB\data" --install --serviceName "MongoDB"(卸载前的移除是--remove)→
net start mongodb(关闭是stop)→
浏览器打开http://localhost:27017(报错则在--install句的末尾加个 --storageEngine=mmapv1
cmd直接用mongo:把这串加入系统环境path:D:\Program Files\MongoDB\Server\3.4\bin;
*******************分割线*******************
PyCharm装了Mongo Plugin插件后,右端Mongo Explorer点开是空白:Settings按钮→+→Lable随意→OK;
打开数据表后,点击右上角的View as table按钮,把树型改为表型
*******************分割线*******************
mongodb使用范例:(爬取花椒直播)
import requests,re
from bs4 import BeautifulSoup
from pymongo import MongoClient
def getLiveId(urlOfAnchors):
liveIds=set()
response=requests.get(urlOfAnchors).text
soup=BeautifulSoup(response,‘lxml‘)
#正则元字符^后面的(),不再表示group(n),而表示开头是一串内容
for link in soup.find_all(‘a‘,href=re.compile(‘^(/l/)‘)):
href=link[‘href‘]
liveId=href.split(‘/‘)[-1]
liveIds.add(liveId)
return liveIds
def getUserId(liveId):
liveUrl=‘http://www.huajiao.com/l/{}‘.format(liveId)
response=requests.get(liveUrl).text
soup=BeautifulSoup(response,‘lxml‘)
title=soup.title.get_text()
return re.findall(‘\d+‘,title)[0]
def getUserData(userId):
print(‘正在获取id为:{}的主播信息‘.format(userId))
response=requests.get(‘http://www.huajiao.com/user/{}‘.format(userId)).text
soup=BeautifulSoup(response,‘lxml‘)
userInfo=soup.find(‘div‘,id=‘userInfo‘)
data={}
data[‘userId‘]=userId
data[‘haedPhoto‘]=userInfo.find(‘div‘,‘avatar‘).img[‘src‘]
tmp=userInfo.h3.get_text(‘|‘,strip=True).split(‘|‘)
data[‘userName‘]=tmp[0]
data[‘area‘]=tmp[2]
tmp=userInfo.find(‘ul‘,‘clearfix‘).get_text(‘|‘,strip=True).split(‘|‘)
data[‘fans‘]=tmp[0]
data[‘thumbsUp‘]=tmp[2]
data[‘gift‘]=tmp[4]
data[‘expense‘]=tmp[6]
return data
def saveUserData(userData):
client=MongoClient()
dataBase=client[‘花椒‘] #Mongodb中若无此数据库,则自动创建
table=dataBase[‘主播信息‘]
table.save(userData)
print(‘主播{}信息保存成功‘.format(userData[‘userName‘]))
if __name__ == ‘__main__‘:
urlOfAnchors=‘http://www.huajiao.com/category/1000‘
liveIds=getLiveId(urlOfAnchors)
for liveId in liveIds:
userId=getUserId(liveId)
try: #getUserId()有些liveUrl打开较慢,跳过它们
userData=getUserData(userId)
saveUserData(userData)
except:
pass
打开cmd,依次输入+回车:mongo;show databases;use 花椒;show tables;db.主播信息.count();db.主播信息.findOne();db.主播信息.find()
****************************************分割线****************************************
mysql5.7.19:
转自:www.jb51.net/article/119369.htm?utm_source=debugrun&utm_medium=referral
1、安装&配置:
①下载包解压到E:\mysql-5.7.19-winx64→环境变量の系统变量の新建:变量名MYSQL_HOME,变量值E:\mysql-5.7.19-winx64→path尾添加;%MYSQL_HOME%\bin→E:\mysql-5.7.19-winx64\bin下建个my.ini文件(老版本不必;内容在文末);
②管理员身份打开cmd并切到bin目录下(下文各命令都是在此目录执行):mysqld.exe -install(提示:Service successfully installed)→mysqld --initialize-insecure --user=mysql(初始化创建空密码的root);
③net start mysql→mysqladmin -u root -p password 新密码→Enter password:(若旧密码为空则直接回车)→net stop mysql(卸载mysql是mysqld --remove)
2、使用:
法①のcmd(不推荐):net start mysql→mysql -u root -p→Enter password:新密码(…操作示例:mysql>show databases;或mysql>select 语句…;)→mysql>quit;→net stop mysql
法②のnavicat:net start mysql→打开软件navicat→连接→除密码外随意→连接测试。
若插入的数据含QQ表情,则新建数据库时(或右键目标库选数据库属性),字符集选末尾的utf8mb4。
查看数据库信息?表?字段:右键连接名或库名选命令列界面→①show create database 库名;②show create table 表名;③desc xs;
添加用户:用户图标→新建用户→主机名为localhost,密码可空→保存按钮;权限管理员→选择左侧的连接名或下一级的某库名→添加权限→左侧勾选新用户→右键授予选全部授予→确定。
3、my.ini里的内容:
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir=%MYSQL_HOME%
datadir=%MYSQL_HOME%\data
[WinMySQLAdmin]
%MYSQL_HOME%\bin\mysqld.exe
*******************分割线*******************
mysql使用范例:
import MySQLdb
class xiaoshuo:
def __init__(self):
#连接个事先手动建的utf8库,否则作用于字段的charset无效,如表那样被库的默认编码覆盖了
#MySQLdb与django的DATABASES的不同:port值非str;库名不叫name;加charset
self.conn=MySQLdb.connect(
host=‘localhost‘,port=3306,user=‘chengy‘,password=‘‘,
db=‘my_db‘,charset=‘utf8‘) #password或passwd,database或db均可
self.cur=self.conn.cursor()
# 若用代码创建数据库,则要在代码中分别指定数据库&表,以及字段的编码
# self.cur.execute(‘CREATE DATABASE IF NOT EXISTS my_db default charset utf8‘)
# self.conn.set_character_set(‘utf8‘) #字段的编码:MySQLdb行,pymysql无此类属性
# self.conn.select_db(‘my_db‘)
self.cur.execute(‘create table if not exists xs(author varchar(10),title text)‘)
def operateBase(self):
self.cur.execute(‘insert into xs(author) values("小明")‘)
self.conn.commit() #self.conn.rollback()
# SQL语句除set赋值外,where等值判断也是用一个=,而非Python中的==
self.cur.execute(‘select * from xs where author="小明"‘)
print(self.cur.fetchall()) #fetchmany(5),fetchone()
print(self.cur.rowcount)
def closeBase(self):
self.cur.close()
self.conn.close()
xs=xiaoshuo()
xs.operateBase()
xs.closeBase()
MongoDB、mysql
原文:http://www.cnblogs.com/scrooge/p/7693875.html