当前位置: 首页 > news >正文

Python爬虫(9)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
  • 插入数据
    • 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').texthouseaddress = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[2]/span').texthousearea = 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 pymongomyclient = 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.lryc.cn/news/15373.html

相关文章:

  • gulimall技术栈笔记
  • vue3生命周期钩子以及使用方式
  • 以假乱真的手写模拟器?
  • 每日一题——L1-069 胎压监测(15)
  • 17_FreeRTOS事件标志组
  • 美团前端常考手写面试题总结
  • MyBatis基于XML的详细使用——动态sql
  • CMake编译opencv4.6
  • 数据分片(mycat)
  • 基于STM32设计的倒车雷达系统(超声波模块多方位测距应用)
  • Robot Framework + Selenium2Library环境下,结合Selenium Grid实施分布式自动化测试
  • 洛谷——前缀和与差分
  • 离线内网环境部署更新问题记录
  • 【Git】Git是什么?简单说说Git的工作机制?Git的常用命令有那些?
  • 《精通Spring4.x 企业应用开发实战》第1章 Spring概述
  • 【Spring Cloud Alibaba】003-Nacos 概述与单机搭建
  • 如何使用 API 工具做 Websocket 测试
  • 90%的人都理解错了HTTP中GET与POST的区别
  • 【C++】秋招实习面经汇总篇
  • 干货分享:2023欧美市场分析与机会
  • 介绍Kadence Elements元素模板:按您的方式设计网站
  • 物联网发展的重要通信技术Wi-Fi
  • OSS上传(Java和Js)
  • 【虚拟机】VirtualBox Host-Only + 主机网络共享配置
  • 小公司“混”的3年,我认真做了5件事,真的受益终生
  • Linux Crontab命令定时任务基本语法与操作教程
  • 文档测试要测什么,如何进行测试?
  • .net 6 引入EFCore
  • MySQL------自定义排序
  • FFMPEG自学二 ⾳频编码实战