Python爬虫(9)selenium爬虫后数据,存入mongodb实现增删改查

news2025/2/27 1:49:36

在这里插入图片描述
之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章
Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式
Python爬虫(2)-Selenium控制浏览器
Python爬虫(3)-Selenium结合pywin32模拟键盘操作
Python爬虫(4)-Selenium模拟鼠标操作
Python爬虫(5)-selenium用显式等待、隐式等待、强制等待,解决反复爬取网页时无法定位元素问题
Python爬虫(6)-selenium用requests、wget、urllib3这3种方法搞定图片和PDF文件下载
Python爬虫(7)selenium3种弹窗定位后点击操作,解决点击登录被隐藏iframe无法点击的登陆问题

Python爬虫(8)selenium爬虫后数据,存入sqlit3实现增删改查

Python爬虫(9)selenium爬虫后数据,存入mongdb实现增删改查

  • Python 中安装pymongodb
  • 插入数据
    • selenium爬虫后插入单条数据
    • 插入多条数据
  • 查询数据
    • 查询文档中所有数据
  • 删除数据
  • 修改数据
    • 更新一条数据,指定键更新
  • 数据排序
    • 升序排序
    • 降序排序

Python 中安装pymongodb

pip3 install pymongo

插入数据

selenium爬虫后插入单条数据

import csv
import pymongo
from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By
opt = ChromeOptions()            # 创建Chrome参数对象
opt.headless = True              # 把Chrome设置成可视化无界面模式,windows/Linux 皆可
driver = Chrome(options=opt)     # 创建Chrome无界面对象
driver.get("https://hui.fang.anjuke.com/loupan/all/a1_m94-95_o8_w1_z3/")
def sc():
    housename = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[1]/span').text
    houseaddress = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[2]/span').text
    housearea = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[3]').text
    #连接mongodb,一定要按照mongodb的端口号来配置
    myclient = pymongo.MongoClient("mongodb://localhost:27017/")
    #连接数据库,如果数据库中没有相应的数据库名称会自动创建一个
    myclient = pymongo.MongoClient("mongodb://localhost:27017/")
    #创建一个数据库名
    mydb = myclient["test"]
    #创建一个集合名
    mycol = mydb["sc_house"]
    #执行插入数据库
    mydict = {"housename_m": housename, "houseaddress_m": houseaddress, "housearea_m": housearea}

    # 插入一条数据
    x = mycol.insert_one(mydict)
if __name__ == "__main__":
    sc()

在这里插入图片描述
以下所有的代码直接放到def中即可使用

插入多条数据


    mydict = [{"housename_m": housename, "houseaddress_m": houseaddress, "housearea_m": housearea},
              {"housename_m": housename, "houseaddress_m": houseaddress, "housearea_m": housearea},]
    x = mycol.insert_many(mydict)

查询数据

	import pymongo
	myclient = pymongo.MongoClient("mongodb://localhost:27017/")
    #创建一个数据库名
    mydb = myclient["test"]
    #创建一个集合名
    mycol = mydb["sc_house"]
    #查询文档中第一条数据
    x = mycol.find_one()
    print(x)

在这里插入图片描述

查询文档中所有数据

for x in mycol.find():
    print(x)

在这里插入图片描述

删除数据

#删除字段
    mycol.delete_one({"housename_m":"y"})

可以看到被删除的指定字段
在这里插入图片描述

修改数据

更新一条数据,指定键更新

mycol.update_one({“housename_m”:‘五矿哈施塔特’},{“$set”:{“housename_m”:‘y’}})

数据排序

升序排序

mymongodb= mycol.find().sort("houseaddress_m")
    for x in mymongodb:
        print(x)

在这里插入图片描述

降序排序

mymongodb = mycol.find().sort("houseaddress_m", -1)
    for x in mymongodb:
        print(x)

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/361498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字符串(一)-- LeetCode[3] 无重复字符的最长子串

1 无重复字符的最长子串 1.1 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释…

gulimall技术栈笔记

文章目录1.项目背景1.1电商模式1.2谷粒商城2.项目架构图3.项目技术&特色4.项目前置要求5.分布式基础概念5.1微服务5.2集群&分布式&节点5.3远程调用5.4负载均衡5.5服务注册/发现&注册中心5.6配置中心5.7服务熔断&服务降级5.7.1服务熔断5.7.2服务降级5.8API网…

MyBatis-XML映射文件详解

一、XML 映射器 1.概述 使用 xml 文件去配置 SQL 代码,比传统的 jdbc 简单方便,能够少写代码,减少使用成本,提高工作效率。 1.1SQL 映射文件中的顶级元素 cache – 该命名空间的缓存配置。 cache-ref – 引用其它命名空间的缓…

OpenEuler(树莓派)安装MQTT服务器

mosquitto是比较常用的MQTT服务器,它本身也是开源的。这篇文章以mosquitto为例,说明如何在安装了OpenEuler的树莓派上安装mosquitto 1. 安装依赖openssl-devel 可以通过命令执行: dnf install openssl-devel因为树莓派网络原因,…

算法比赛——必备的数论知识

秋名山码民的主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 🙏作者水平有限,如发现错误,还请私信或者评论区留言! 目录一、欧几里得二、扩展欧几里得三、算术基本定理四、线性筛选求质数五…

WSO2通过设定Role来订阅对应的Api

WSO2通过设定Role来订阅对应的Api1. Add Role And User1.0 Add Role1.1 Add User 1.2 Add Mapping2. Upload Api2.1 Upload Three Apis2.2 Inspection3. AwakeningWSO2安装使用的全过程详解: https://blog.csdn.net/weixin_43916074/article/details/127987099. 1. Add Role An…

硬件学习 软件Cadence day06 原理图网表导入PCB (过程和操作的错误),开始的画板

1.新建一个制作芯片的工程 1.打开 File ->New 2.填写信息,设置路径 2.原理图的网表导入 1.打开这个窗口 File -> import ->Logic.. 2.确定信息 3.解决网表导入时出现的错误 1. 第一个案列 (没有找到文件 也是这个) 比如说: WARNING(…

[蓝桥杯] 递归与递推习题训练

文章目录 一、递归实现指数型枚举 1、1 题目描述 1、2 题解关键思路与解答 二、递归实现排列型枚举 2、1 题目描述 2、2 题解关键思路与解答 三、递归实现组合型枚举 3、1 题目描述 3、2 题解关键思路与解答 四、带分数 4、1 题目描述 4、2 题解关键思路与解答 五、费解的开关…

基于STM32设计的倒车雷达系统(超声波模块多方位测距应用)

一、项目背景 汽车高科技产品家族中,专为倒车泊位设置的“倒车雷达”应运而生,倒车雷达的加装可以解决驾驶人员的后顾之忧,大大降低到车事故的发生。汽车倒车雷达全称为“倒车防撞雷达”,也叫“泊车辅助装置”,是汽车泊车安全辅助装置,能以声音或者更为直观的显示来告知…

比特数据结构与算法(第三章_下)队列的概念和实现(力扣:225+232+622)

一、队列(Queue)队列的概念:① 队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表。② 入队列,进行插入操作的一端称为 队尾。出队列,进行删除操作的一端称为 队头。③ 队列中的元素…

小公司“混”的3年,我认真做了5件事,真的受益终生

小公司“混”的3年,我认真做了5件事,真的受益终生 目录:导读 功能测试很重要但不值钱 自动化测试在小公司没市场,但是你得会 给自己的一些忠告 第一件事:分清阶段,制定计划 第二件事:梳理…

SQL零基础入门学习(三)

SQL零基础入门学习(二) SQL WHERE 子句 WHERE 子句用于提取那些满足指定条件的记录。 SQL WHERE 语法 SELECT column1, column2, ... FROM table_name WHERE condition;参数说明: column1, column2, …:要选择的字段名称&…

进程或线程终止是否会释放锁

线程锁的必要性比如一个多线程抢票程序,tickets作为临界资源,所有的线程都要对它进行判断ticket是否大于0,以及ticket–的操作。用ticket–操作举例,虽然他看起来是一行C语言的代码,但是实际上它的底层汇编经历了三个阶…

OSS Compass 开源指南针发布,剑指开源生态健康

估量有尺,开源有道。2 月 21 日,开源指南针 OSS Compass 发布会在北京顺利举行。OSS Compass 的发布,标志着我国首个开源生态健康评估平台正式诞生。发布会上介绍了 OSS Compass 的理论研究及实践成果,公布了 OSS Compass 开源社区…

图解操作系统

硬件结构 CPU是如何执行程序的? 图灵机的工作方式 图灵机的基本思想:用机器来模拟人们用纸笔进行数学运算的过程,还定义了由计算机的那些部分组成,程序又是如何执行的。 图灵机的基本组成如下: 有一条「纸带」&am…

【数据库】redis 配置文件与发布订阅

目录 配置文件 一,Units 二, INCLUDE 三,NETWORK 1, bind 2, tcp-backlog 3,timeout 4, tcp-keepalive 四,GENERAL 1,daemonize 2, pidfile 3&…

ESP32设备驱动-内置霍尔磁力传感器数据读取

内置霍尔磁力传感器数据读取 文章目录 内置霍尔磁力传感器数据读取1、ESP32霍尔磁力传感器介绍2、软件准备3、硬件准备4、读取霍尔磁力传感值5、运行结果ESP32开发板具有内置霍尔效应传感器,可检测周围磁场的变化。本文将介绍如何在Arduino IDE中读取ESP32霍尔效应传感器的数据…

【VUE3.0_CSS功能】

CSS功能组件css作用域深度选择器(标签名空格:deep(标签名))插槽选择器(:soltted(标签名))全局选择器(:global(类名))动态CSS(v-bind)useCSSModule拓展知识:deep的写法组件…

iPhone更换电池和屏幕后提醒非原厂配件的操作办法

---开局一张图,内容全靠编系列! 【图】 自从在iPhone系统iOS13开始支持原厂配件检测后,可以说苹果也动起了维修站商家利益的这块蛋糕。道理自然简单,卷嘛!全球汽车行业也不是靠卖新车才赚钱的,各种交通事故…

MATLAB/Simulink 通信原理及仿真学习(二)

文章目录MATLAB/Simulink 通信原理及仿真学习(二)simulink仿真常用的Simulink库1. 信号源模块库2. 数序运算模块3. 信号输出模块库4.仿真搭建5.搭建自己的库6.S-函数编写MATLAB/Simulink 通信原理及仿真学习(二) simulink仿真 交…