python简单网站爬虫-爬取北京7天最高、最低气温

python简单网站爬虫-爬取北京7天最高、最低气温

前置操作:

1.待爬取网站:
北京天气的网址:
http://www.weather.com.cn/weather1d/101010100.shtml

2.查看页面元素:
本次需要抓取的字段为北京7天最高、最低气温,可按F12进入开发者模式,查找对应页面元素:
查看页面元素

2.安装beautifulsoup4:
pip install beautifulsoup4

3.安装lxml:
pip3 install lxml

实现代码

__author__ = 'huangsan'

import requests # 导入requests模块
from bs4 import BeautifulSoup # 从bs4包中导入BeautifulSoup模块

# 设置请求头(可在浏览器输入about:version,获取用户代理,更新User-Agent信息)
headers = {"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Safari/537.36 Edg/104.0.1293.47'}

# 目标网站
url ="http://www.weather.com.cn/weather/101010100.shtml"

# 使用request的get方法向目标网站发起请求
web_data = requests.get(url,headers=headers)

# 设置编码格式
web_data.encoding = 'utf-8'

# 网站响应数据
content = web_data.text

# 使用lxml解析器将网站响应解析为Soup对象,便于接下来利用css的selector语法,获取tem的p标签中span元素的数据
soup = BeautifulSoup(content, 'lxml')
# selector获得的是所有符合条件的数据,因此是list,遍历list如date_list[0]的值实质是bs4.element.Tag元素对象
# 获取日期列表
date_list = soup.select('li.skyid h1')
# 获取最高气温列表
h_tem_list = soup.select('p.tem span')
# 获取最低气温列表
l_tem_list = soup.select('p.tem i')

# 遍历列表,输出结果
for i in range(len(date_list)):
  print('{0}最高气温为{1}℃,最低气温{2}'.format(date_list[i].text, h_tem_list[i].text, l_tem_list[i].text))

运行结果为:
10日(今天)最高气温为30℃,最低气温20℃
11日(明天)最高气温为32℃,最低气温23℃
12日(后天)最高气温为32℃,最低气温24℃
13日(周六)最高气温为31℃,最低气温25℃
14日(周日)最高气温为33℃,最低气温24℃
15日(周一)最高气温为32℃,最低气温22℃
16日(周二)最高气温为31℃,最低气温22℃

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值