首页 > 编程语言 >python实战爬取天气网天气信息

python实战爬取天气网天气信息

时间:2022-11-06 22:57:43浏览次数:38  
标签:tem python 天气 response 爬取 weather attrs data html

python爬取天气网的信息

需要requests和beautifulsoup

前半部分为requests的使用,主要是使用header读取网页html数据,

后半部分是beautifulsoup使用,主要是从html提取我们需要的内容

import requests
from bs4 import BeautifulSoup
headers={
'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.26"
}
#网址,南京为http://www.weather.com.cn/weather/101190101.shtml,下面查找代码也要改变
#长沙为http://www.weather.com.cn/weather/101250101.shtml,下面查找代码也要改变
url="http://www.weather.com.cn/weather/101200101.shtml"
#读取网页数据
response=requests.get(url=url,headers=headers)
#改变编码为utf-8否则会乱码,可以自行尝试
response.encoding="utf-8"
#一下可省略,只是把html导出一下,便于查找下面的错误
page_text = response.text
with open("./tianqichangsha.html","w",encoding="utf-8") as fp:
fp.write(page_text)
#-------------------------------分隔符---------------------------------
#开始美味的汤
soup=BeautifulSoup(response.text,"html.parser")

#选定当天 南京为1 长沙为2 为什么不知道
attrs={
"class":"sky skyid lv2 on"
}
data=soup.find(attrs=attrs)

#查找当天最高温度、最低温度
attrs={
"class":"tem"
}
data_tem=data.find(attrs=attrs)
data_maxtem=str(data_tem.span.contents)
data_mintem=str(data_tem.i.contents)
print(data_maxtem+data_mintem)
#查找天气
attrs={
"class":"wea"
}
data_wea=data.find(attrs=attrs)
#类型转换
data_weastr=str(data_wea.contents)
print(data_weastr)

标签:tem,python,天气,response,爬取,weather,attrs,data,html
From: https://www.cnblogs.com/yzjx1999/p/16864515.html

相关文章

  • Python - 上下文管理器协议
    with语句的目的是简化try/finally,即便由于异常,return,sys.exit()调用而终止,也会执行指定的操作上下文管理器协议包含__enter__和__exit__两个方法with语句开始执行......
  • python中列出文件的绝对路径
     001、>>>importos>>>os.path.abspath("2.txt")##列出指定文件的绝对路径'/home/test/2.txt'>>>os.path.abspath("test1")##列出指定目录的绝对......
  • Day6:Python基础:简单购物车
    while1:Li=['手机','电脑','Ipad','无线耳机','运动鞋']forLoopinLi:print('{}\t{}'.format(Li.index(Loop)+1,Loop))Num_chioce=inpu......
  • python面试题汇总
    一基础阶段1数据类型:python数据类型:int/float/str/bool/list/tuple/set/dict可变类型(可以修改元素):list,dict,set不可变类型:int,float,bool,str,tuple2数据类......
  • 【Python】第4章-1 生成3的乘方表
    输入一个非负整数n,生成一张3的乘方表,输出3⁰~3ⁿ的值。可调用幂函数计算3的乘方。输入格式:输入在一行中给出一个非负整数n。输出格式:按照幂的递增顺序输出n+1行,每行......
  • 【Python】第3章-22 输出大写英文字母
    本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“NotFound”。输入格式:输入为一个以回车结束的字符串(少于80个......
  • python opencv 获取图像的区域
    pythonopencv提取图像的区域 start_x=index_box[0]start_y=index_box[1]end_x=index_box[2]end_y=index_box[3]index_person_img=camera1_img[start_y......
  • python-基础语法
    python3保留字保留字即关键字,我们不能把它们用作任何标识符名称。Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字:点击查看代码importkeywordp......
  • python基础之面向对象
    python基础之面向对象面向对象前戏之人狗大战"""编写代码简单的实现人打狗,狗咬人的小游戏(剧情需要,人与狗是好朋友)"""#推导步骤1:代码定义出人和狗person1={'name......
  • python iloc() [[],[]] double list input
    datacalledframeABCDa0.5600940.3526860.954100b0.5637280.3355170.232902c0.4821550.9766180.565462d0.4771460.9333530.291764......