哎呦喂,各位爬虫小能手们,今天咱们来聊点实在的——怎么用Scrapy这个神器,把天气预报数据爬下来,然后优雅地塞进MySQL数据库!
别跟我说你还在用Requests+BeautifulSoup那种“原始人组合”,或者更惨——手动复制粘贴(不会真有人这么干吧?)。是时候升级你的装备库了,Scrapy这把“瑞士军刀”不用起来,简直对不起你写的那么多Python代码!
一、为啥要选Scrapy?它比手动复制强在哪?
先来说说Scrapy这个“狠角色”。如果说普通的爬虫库是自行车,那Scrapy就是豪华超跑——自带发动机、导航系统和防撞保险杠!
Scrapy的杀手锏功能:
- 内置CSS选择器和XPath解析:不用再额外导入解析库,写起来那叫一个丝滑
- 自动请求调度:不用你操心怎么管理请求队列,它自动帮你排队处理
- 中间件支持:想加代理?换User-Agent?So easy!
- 数据管道:这就是今天的主角,专门用来处理数据存储的
- 并发控制:想开多快就开多快(当然要遵守交通规则)
说白了,Scrapy让你专注于数据提取这个核心业务,而不是整天纠结于网络请求、队列管理这些杂事。
二、环境准备:装好你的“爬虫装备库”
在开始我们的“偷天换日”大计之前,得先把装备配齐了。
1. 安装必备包:
pip install scrapy pymysql cryptography
scrapy:今天的主角,爬虫框架pymysql:Python连接MySQL的驱动cryptography:有时候连接数据库需要这个加密库
2. 创建MySQL数据库:
在你本地的MySQL里执行以下SQL:
CREATE DATABASE weather_data;
USE weather_data;
CREATE TABLE weather (
id INT AUTO_INCREMENT PRIMARY KEY,
city VARCHAR(50) NOT NULL,
date DATE NOT NULL,
temperature VARCHAR(20),
weather_condition VARCHAR(50),
wind_direction VARCHAR(50),
wind_force VARCHAR(20),
crawl_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
看这个表结构多清晰,城市、日期、温度、天气状况、风向风力,还有自动记录爬取时间。完美!
三、创建Scrapy项目:搭建你的“爬虫工厂”
是时候亮出我们的Scrapy绝技了!
1. 创建项目:
scrapy startproject weather_spider
cd weather_spider
scrapy genspider weather_example "example.com"
运行完这几行命令,你会看到一个完整的项目结构:
weather_spider/
scrapy.cfg
weather_spider/
__init__.py
items.py
middlewares.py
pipelines.py
settings.py
spiders/
__init__.py
weather_example.py<
Scrapy爬虫存天气数据到MySQL

最低0.47元/天 解锁文章
1470

被折叠的 条评论
为什么被折叠?



