首先需要了解需要爬取的数据的网页的结构,其结构如下图所示(只截取了部分):

从图中可以看出每一天的天气数据都被一个<li></li>包含,这七天的数据又都包含在一个<ul></ul>中。
所以我们的目标就是获取ul下每个li中的数据。注意,“今天”的数据中温度只有一个数值,而其后6天的
数据温度都有两个数值,需要单独处理。
代码如下(IDE:pycharm):
from bs4 import BeautifulSoup
from bs4 import UnicodeDammit
import urllib.request
import sqlite3
class WeatherDB:
def openDB(self):
# 使用sqlite3建立的weathers数据库
self.con = sqlite3.connect("weathers.db")
self.cursor = self.con.cursor()
try:
self.cursor.execute("create table weathers (wCity varchar(16),wDate varchar(16),wWeather varchar(64),wTemp varchar(32),constraint pk_weather primary key(wCity,wDate))")
except:
self.cursor.execute("delete from weathers")
def closeDB(self):
self.con.commit()
self.con.close()
def

本文介绍了一个使用Python的BeautifulSoup库抓取中国天气网天气预报数据的实例,包括如何解析HTML结构,提取所需数据并存入SQLite数据库。代码详细展示了从构造请求头到数据持久化的全过程。
最低0.47元/天 解锁文章
5966

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



