基于BeautifulSoup解析的网页爬虫实现

目标

爬去cnkongqi.com上的气象数据,cnkongqi.com站点上包含全国每个城市的天气,空气质量等数据,这些数据每小时都会进行更新。我的目标是要将该站点的某一时间的气象数据全部抓取下来,并保存到数据库。

本次爬虫编写语言选用python,由于在下对python是小白,所以这个爬虫程序可以算是我的第一个完整的python爬虫。以前使用过java编写一些爬虫程序,爬去够某些小说网站的小说,所以对爬虫的原理有着一定的理解,根据该原理使用python进行实现。

分析

cnkongqi.com上的某一个城市的气象数据地址为:http://www.cnkongqi.com/pc/510100.htm ,每小时数据更新后地址不变。而且每个页面都包含一个城市目录,该站点没有单独的目录页,所以需要预先在本地创建城市数据页面目录。创建好城市目录后,即可进行遍历目录进行数据爬去和存储。如果需要不断的更新本地数据,只需要每小时执行一次便利代码即可。需要完成:

  • 目录创建
  • 遍历目录获取气象信息你

实现

  • 使用urllib来获取目标页面html
  • 使用Beautifulsoup解析html
  • 使用pymysql进行数据存储

数据库设计

根据站点数据结构特点,设计了4张表:
- 省份目录 t_province

CREATE TABLE t_province
(
    id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    name VARCHAR(20)
);
  • 城市目录 t_city
CREATE TABLE t_city
(
    id INT(11) PRIMARY KEY NOT NULL,
    name VARCHAR(30),
    provinceId INT(11),
    infoUrl VARCHAR(50),
    updateTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
);
  • 城市气象数据 t_city_data
CREATE TABLE t_city_data
(
    id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    tq VARCHAR(5) COMMENT '天气',
    wd FLOAT(5,2) COMMENT '温度 。C',
    sd FLOAT(5,2) COMMENT 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值