热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【爬虫学习三】Python将爬取的数据存储到MongoDB中

本内容衔接:爬虫学习二一:下载并安装MongoDB下载链接:http:dl.mongodb.orgdlwin32x86_64照着这篇博

本内容衔接 : 爬虫学习二




一: 下载并安装 MongoDB

下载链接:http://dl.mongodb.org/dl/win32/x86_64

照着这篇博客配置完就行:配置MongoDB




二:在pycharm中安装Mongo Plugin

File → settings → plugins 输入mongo 安装 Mongo Plugin

安装成功后重启pycharm生效

在这里插入图片描述




三: 将数据存入MongoDB中

import requests
import time
import pymongoclient = pymongo.MongoClient('localhost',27017) #创建连接book_weather = client['weather'] #创建名为 "weather" 的数据库sheet_weather = book_weather['sheet_weather'] #在"weather"数据库中建表"sheet_weather"url = 'http://cdn.heweather.com/china-city-list.txt' #国内城市IDdata = requests.get(url) #获取网页数据data.encoding = 'utf8' #数据的编码方式为utf8,否则会乱码data1 = data.text.split("\n") #通过split将文本转换为列表for i in range(6): #删除前6行不需要的数据data1.remove(data1[0])for item in data1:#接口链接中的key后面的xxx改为自己刚刚注册的key,location后加上城市IDurl = 'https://free-api.heweather.net/s6/weather/forecast?key=xxx&location=' + item[2:13]data2 = requests.get(url)data2.encoding = 'utf8'#time.sleep(1) #避免访问服务器过于频繁,每次访问等待1s(这里可以不加)dic = data2.json()sheet_weather.insert_one(dic) #向表中插入数据

运行结果:
(1)成功创建数据库

在这里插入图片描述
(2) 双击表后看到内容(可以查看JSON的数据结构):

在这里插入图片描述




四: MongoDB数据库查询

$lt 表示符号 <
$lte 表示符号<&#61;
$gt 表示符号 >
$gte 表示符号>&#61;

找出今日最高温度大于20度的城市

import pymongoclient &#61; pymongo.MongoClient(&#39;localhost&#39;,27017) #创建连接book_weather &#61; client[&#39;weather&#39;]sheet_weather &#61; book_weather[&#39;sheet_weather&#39;]# for item in sheet_weather.find():
# tmp &#61; item["HeWeather6"][0]["daily_forecast"][0][&#39;tmp_max&#39;]#将最高温度设置为int类型,第一个参数表示要更新的条件#第二个参数表四要更新的信息
# sheet_weather.update_one({&#39;_id&#39;:item[&#39;_id&#39;]},{&#39;$set&#39;:{&#39;HeWeather6.0.daily_forecast.0.tmp_max&#39;:int(tmp)}})for item in sheet_weather.find({&#39;HeWeather6.0.daily_forecast.0.tmp_max&#39;:{&#39;$gt&#39;:20}}):print(item[&#39;HeWeather6&#39;][0][&#39;basic&#39;][&#39;location&#39;])

运行结果&#xff1a;
在这里插入图片描述



找出今日为西北风的城市&#xff1a;

import pymongocilent &#61; pymongo.MongoClient(&#39;localhost&#39;,27017)book_weather &#61; cilent[&#39;weather&#39;]sheet_weather &#61; book_weather[&#39;sheet_weather&#39;]for item in sheet_weather.find({&#39;HeWeather6.0.daily_forecast.0.wind_dir&#39;:&#39;西北风&#39;}):print(item[&#39;HeWeather6&#39;][0][&#39;basic&#39;][&#39;location&#39;])

运行结果&#xff1a;
在这里插入图片描述


推荐阅读
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 本文深入探讨了Go语言中的接口型函数,通过实例分析其灵活性和强大功能,帮助开发者更好地理解和运用这一特性。 ... [详细]
  • 近期尝试从www.hub.sciverse.com网站通过编程手段获取数据时遇到问题,起初尝试使用WebBrowser控件进行数据抓取,但发现使用GET方法翻页时,返回的HTML代码始终相同。进一步探究后了解到,该网站的数据是通过Ajax异步加载的,可通过HTTP查看详细的JSON响应。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • Jenkins API当前未直接提供获取任务构建队列长度的功能,因此需要通过解析HTML页面来间接实现这一需求。 ... [详细]
  • 本文介绍如何使用JavaScript中的for循环来创建一个九九乘法表,适合初学者学习循环结构的应用。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • Python 领跑!2019年2月编程语言排名更新
    根据最新的编程语言流行指数(PYPL)排行榜,Python 在2019年2月的份额达到了26.42%,稳坐榜首位置。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
author-avatar
mobiledu2502927333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有