Python_BeautifulSoup4爬虫应用案例

本文介绍了如何利用Python的BeautifulSoup4库爬取中国各个城市的天气信息,特别是最低气温。首先分析了中国天气网站的页面结构,包括分页、省份、城市等元素在HTML中的位置。接着,详细说明了每个城市信息在HTML标签中的层级关系,如`div`、`table`、`tr`和`td`,并指出城市名称在`td`下的`a`标签中,最低气温在`td`的倒数第二个单元格。最后,验证了所需数据存在于网页源代码中,为实现爬虫提供了基础。
摘要由CSDN通过智能技术生成

前言:BeautifulSoup4是爬虫必学的技能,和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。下面分享如何运用Python的第三方库BeautifulSoup4来爬取中国城市的天气。

中国天气网站(华北):http://www.weather.com.cn/textFC/hb.shtml
华北分页
可以看到url中的 hb表示华北,其他区域则分别是:db(东北)、hd(华东)、hz(华中)、hn(华南)、xb(西北)、xn(西南)、gat(港澳台)。

我们的爬虫需求是:爬取全中国所有城市以及对应的最低气温。

页面结构分析,通过页面导航可以发现:
(1)整个分页都在<div class="conMidtab">...</div> == $0 标签里,同级标签有7个,对应7个日期的分页:
页面分析1
(2)一个<div class="conMidtab">标签下面有多个<div class="conMidtab2">的标签,一个<div class="conMidtab2">标签的节点集对应一个省/直辖市:
页面分析2
(3)一个<div class="conMidtab2">标签下面有两个节点标签:其中table标签(表格标签)包含了整个省/直辖市的所有城市及对应城市的天气信息,<div class="contentLtab">...</div>标签是分隔行“返回顶部”:
页面分析3.1
页面分析3.2
(4)一个tr标签表示一行,第一个城市的名称和对应的天气在第三行(即第三个tr标签),第二个城市的名称和对应的天气在第四行,以此类推:
页面分析4
(5)一个td标签表示一个单元格,城市名称在第二个单元格(即第二个td标签,该td标签下面还有一个a标签),最低气温在倒数第二个单元格:
页面分析5
(6)验证数据在不在网页源代码中:
页面分析6可以看到需要的信息都在对应的标签里。

案例实现

import requests
from bs4 import BeautifulSoup

# 定义一个函数,用来获取网页源码并进行解析
def parse_page(url):
    headers 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值