存入mysql
baike_mysql.py
import json
import redis
import MySQLdb
def main():
rediscli = redis.StrictRedis(host='127.0.0.1', port=6379, password='123456', db=0)
mysqlcli = MySQLdb.connect(host='127.0.0.1', user='root', passwd='123456', db='fate', port=3306,
charset='utf8')
print(rediscli)
while True:
source, data = rediscli.blpop(["mybaike_redis:items"])
item = json.loads(data)
print(item)
try:
cur = mysqlcli.cursor()
sql = 'INSERT INTO BAIKE(url,masterTitle,secondTitle,content) \
VALUES("%s","%s","%s","%s")' % (
item["url"], item["masterTitle"], item["secondTitle"], item["content"])
print(sql)
cur.execute(sql)
mysqlcli.commit()
cur.close()
print("inserted %s" % item['source_url'])
except MySQLdb.Error as e:
print("Mysql Error %d: %s" % (e.args[0], e.args[1]))
if __name__ == '__main__':
main()
存入MongoDB
baike_mongodb.py
import json
import redis
import pymongo
def main():
rediscli = redis.StrictRedis(host='192.168.199.108', port=6379, db=0)
mongocli = pymongo.MongoClient(host='localhost', port=27017)
db = mongocli['baidu']
sheet = db['baike']
while True:
source, data = rediscli.blpop(["mybaike_redis:items"])
item = json.loads(data)
sheet.insert(item)
try:
print("inserted %s" % item['source_url'])
except KeyError:
print("Error procesing: %r" % item)
if __name__ == '__main__':
main()