实操 | 从0到1教你用Python来爬取整站天气网

本文介绍了使用Python的Scrapy框架爬取天气网站的步骤,包括安装Scrapy、理解其组件、项目分析、新建项目、编写代码、运行项目、入库操作等,特别讲解了如何处理JavaScript渲染的内容,以及如何将数据存储到MongoDB。
摘要由CSDN通过智能技术生成

Scrapy

Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。

一、安装scrapy

安装Twisted

  • Twisted:为 Python 提供的基于事件驱动的网络引擎包。

  • 在下面网址安装Twisted

url:https://www.lfd.uci.edu/~gohlke/pythonlibs/

安装scrapy

  • cmd输入 pip install scrapy

  • 安装完毕,cmd里输入scrapy出现安装成功。

二、了解scrapy

Scrapy的组件

  • 引擎,用来处理整个系统的数据流处理,触发事务。

  • 调度器,用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。

  • 下载器,用于下载网页内容,并将网页内容返回给蜘蛛。

  • 蜘蛛,蜘蛛是主要干活的,用它来制订特定域名或网页的解析规则。

  • 项目管道,负责处理有蜘蛛从网页中抽取的项目,主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

  • 下载器中间件,位于Scrapy引擎和下载器之间的钩子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。

  • 蜘蛛中间件,介于Scrapy引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。

  • 调度中间件,介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。

其处理流程为:

  • 引擎打开一个域名时,蜘蛛处理这个域名,并让蜘蛛获取第一个爬取的URL。

  • 引擎从蜘蛛那获取第一个需要爬取的URL,然后作为请求在调度中进行调度。

  • 引擎从调度那获取接下来进行爬取的页面。

  • 调度将下一个爬取的URL返回给引擎,引擎将他们通过下载中间件发送到下载器。

  • 当网页被下载器下载完成以后,响应内容通过下载中间件被发送到引擎。

  • 引擎收到下载器的响应并将它通过蜘蛛中间件发送到蜘蛛进行处理。

  • 蜘蛛处理响应并返回爬取到的项目,然后给引擎发送新的请求。

  • 引擎将抓取到的项目项目管道,并向调度发送请求。

  • 系统重复第二部后面的操作,直到调度中没有请求。

三、项目分析

爬取天气网城市的信息

url : https://www.aqistudy.cn/historydata/
加Python学习qq裙:10667510  送全套零基础学习资料教程

爬取主要的信息: 热门城市每一天的空气质量信息

点击月份还有爬取每天的空气质量信息

四、新建项目

  • 新建文件夹命令为天气网爬虫

  • cd到根目录,打开cmd,运行 scrapy startproject weather_spider

  • 创建spider

cd到根目录,运行 scrapy genspider weather www.aqistudy.cn/historydata

这里的weather是spider的名字

  • 创建的路径如下:

五、代码编写

对于scrapy,第一步,必须编写item.py,明确爬取的对象

  • item.py

import scrapy

class WeatherSpiderItem (scrapy.Item) :

# define the fields for your item here like:

# name = scrapy.Field()

"""日期    AQI 质量等级    PM2.5   PM10    SO2 CO  NO2 O3_8h"""

city =

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值