吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1135|回复: 14
收起左侧

[Python 原创] 基于爬虫的Pymongo的封装类

[复制链接]
hybpjx 发表于 2024-3-15 09:26
本帖最后由 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万立方米/年采矿技改扩建项目"))

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

3bbdyg 发表于 2024-3-15 09:44
可不可以加一个批量保存,当数据比较多的时候,效率能好一些
头像被屏蔽
saccsf 发表于 2024-3-15 09:47
zzspangle 发表于 2024-3-15 09:50
 楼主| hybpjx 发表于 2024-3-15 10:04
3bbdyg 发表于 2024-3-15 09:44
可不可以加一个批量保存,当数据比较多的时候,效率能好一些

可以的 用update_many。因为我这个是爬的时候写进去 没有涉及到大批量保存就没写
knsaber 发表于 2024-3-15 10:19
可以加一下 数据增量 的功能
pojie0497 发表于 2024-3-15 12:00
感谢分享
头像被屏蔽
fanglei99 发表于 2024-3-15 13:52
提示: 作者被禁止或删除 内容自动屏蔽
VOA1170 发表于 2024-3-15 15:31
新手来学习一下,点赞楼主  第一次回帖
lyx767210 发表于 2024-3-15 15:45
来学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-11 17:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表