之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章
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)