本帖最后由 hybpjx 于 2024-3-15 09:30 编辑
基于爬虫的Pymongo的封装类
都是自己写的。主要功能不多。有大佬的话可以补充一下
功能有二- 方便爬虫每次循环往数据库里写数据
- 判断库里是否有数据
# -*- coding: utf-8 -*-
# @Time : 2023/11/23 10:11
# @Author : lzc
# @Email : hybpjx@163.com
# @File : to_mongodb.py
# @Software: PyCharm
# @blog : https://www.cnblogs.com/zichliang
from pprint import pprint
from loguru import logger
from pymongo import MongoClient
class MongoConnection:
def __init__(self,
database: str,
table_name: str,
connect_url="mongodb://localhost:27017/",
):
client = MongoClient(connect_url)
db = client[database]
self.coll = db[table_name]
def save(self, item):
self.coll.update_one(item, {"$set": item}, upsert=True)
logger.info("写入成功")
def is_exist(self, key, value):
try:
exist_name = self.coll.find_one({key: value, }, {"_id": 0})[key]
if exist_name:
if exist_name == value:
logger.warning("""!!! {%s:%s} 已爬,现在正在跳过... !!!!""" % (key, value))
return False
except TypeError:
logger.success(f"数据库中 暂无数据:{value} ")
return True
if __name__ == '__main__':
mc = MongoConnection(database="设计研究院",table_name="xx网爬取")
print(mc.is_exist("项目名称", "凹凸棒石粘土矿30万立方米/年采矿技改扩建项目"))
|