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

news/2024/7/19 10:01:28 标签: python, 爬虫, selenium, mongodb, 数据库

在这里插入图片描述
之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章
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
  • 插入数据
  • 查询数据
    • 查询文档中所有数据
  • 删除数据
  • 修改数据
    • 更新一条数据,指定键更新
  • 数据排序
    • 升序排序
    • 降序排序

mongodb_14">Python 中安装pymongodb

pip3 install pymongo

插入数据

selenium_17">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.niftyadmin.cn/n/86671.html

相关文章

工业树莓派和PLC怎么选?

一、 什么是虹科工业树莓派 1、树莓派 在了解虹科工业树莓派之前,首先要了解一下什么是树莓派。树莓派是一款基于ARM的小型电脑,在树莓派上提供丰富的接口,能够实现较多功能。它同样是开发人员的最爱,其搭载Linux系统&#xff0…

Netty核心原理(线程模型、核心API)与入门案例详解

Netty核心原理(线程模型、核心API)与入门案例详解 文章目录Netty核心原理(线程模型、核心API)与入门案例详解Netty 介绍原生 NIO 存在的问题概述线程模型线程模型基本介绍传统阻塞 I/O 服务模型Reactor 模型单 Reactor 单线程Nett…

K8s中gRpc通信负载均衡失效

上篇文章在做 整合K8sSpringCloudK8sSpringBootgRpc 时,发现K8s中使用gRpc通信,负载均衡功能失效查了下gRpc的最佳实践,找到这里Load balancingSome load balancers dont work effectively with gRPC. L4 (transport) load balancers operate…

提高情商 倾听能力

让 chatgpt推荐的 1. 心理学倾听教程 2. 表达 - 比喻 具象 ,有画面感 https://blog.csdn.net/fei33423/article/details/129131137 小说: 1.《呼啸山庄》(Wuthering Heights)by Emily Bronte (高级) 2.《了不起的盖茨比》(The…

华为OD机试 - 选座位(Python) | 机试题+算法思路+考点+代码解析 【2023】

选座位 题目 疫情期间需要大家保证一定的社交距离 公司组织开交流会议,座位有一排共N个座位 编号分别为[0...n-1] 要求员工一个接着一个进入会议室 并且还可以在任何时候离开会议室 每当一个员工进入时,需要坐到最大社交距离的座位 例如: 位置A与左右有员工落座的位置距离…

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

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

mmdetection测试阶段

首先需要训练,训练会自动生成:latest.pth 权重文件 根据权重文件生成“.pkl”文件; 下面以faster_rcnn为例,–out是只生成的权重文件地址,result是生成的pkl文件名; python ./tools/test.py ./configs/…

Ardiuno-交通灯

LED交通灯实验实验器件:■ 红色LED灯:1 个■ 黄色LED灯:1 个■ 绿色LED灯:1 个■ 220欧电阻:3 个■ 面包板:1 个■ 多彩杜邦线:若干实验连线1.将3个发光二极管插入面包板,2.用杜邦线…