python获取网站http://www.weather.com.cn 城市 8-15天天气

news/2024/5/9 10:42:23/文章来源:https://blog.csdn.net/weixin_33843947/article/details/94523881

参考一个前辈的代码,修改了一个案例开始学习beautifulsoup做爬虫获取天气信息,前辈获取的是7日内天气,

我看旁边还有8-15日就模仿修改了下。其实其他都没有变化,只变换了获取标签的部分。但是我碰到

一个span获取的问题,如我的案例中每日的源代码是这样的。

<li class="t">
<span class="time">周五(19日)</span>
<big class="png30 d301"></big>
<big class="png30 n301"></big>
<span class="wea">雨</span>
<span class="tem"><em>36℃</em>/22℃</span>
<span class="wind">东南风</span>
<span class="wind1">微风</span>
</li>

上门的所有span标签中,日期,天气,风向都可以通过beautifulsoup进行标签匹配获取。唯独温度获取不到,

获取到的值为none,我奇怪了好酒,用span.em能获取到36°,获取不完全,不符合我的要求。最后没办法。

我只能通过获取到这个span这一回内容

<span class="tem"><em>36℃</em>/22℃</span>

然后通过字符串替换替换掉多余的字符。剩余36℃/22℃

得到这个结果。存入变量并写入csv文件。

以下为全部代码,如有不对的地方欢迎指教。

'''
Created on 2017年5月10日@author: bekey qq:402151718
'''#conding:UTF-8import requests
import csv
import random
import time
import socket
import http.client
#import urllib.request
from bs4 import BeautifulSoupdef get_content(url , data = None):header={'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Encoding': 'gzip, deflate, sdch','Accept-Language': 'zh-CN,zh;q=0.8','Connection': 'keep-alive','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'}timeout = random.choice(range(80, 180))while True:try:rep = requests.get(url,headers = header,timeout = timeout)rep.encoding = 'utf-8'# req = urllib.request.Request(url, data, header)# response = urllib.request.urlopen(req, timeout=timeout)# html1 = response.read().decode('UTF-8', errors='ignore')# response.close()break# except urllib.request.HTTPError as e:#         print( '1:', e)#         time.sleep(random.choice(range(5, 10)))#
        # except urllib.request.URLError as e:#     print( '2:', e)#     time.sleep(random.choice(range(5, 10)))except socket.timeout as e:print( '3:', e)time.sleep(random.choice(range(8,15)))except socket.error as e:print( '4:', e)time.sleep(random.choice(range(20, 60)))except http.client.BadStatusLine as e:print( '5:', e)time.sleep(random.choice(range(30, 80)))except http.client.IncompleteRead as e:print( '6:', e)time.sleep(random.choice(range(5, 15)))return rep.text# return html_textdef get_data(html_text):final = []bs = BeautifulSoup(html_text, "html.parser")  # 创建BeautifulSoup对象body = bs.body # 获取body部分data = body.find('div', {'id': '15d'})  # 找到id为7d的divul = data.find('ul')  # 获取ul部分li = ul.find_all('li')  # 获取所有的lifor day in li: # 对每个li标签中的内容进行遍历temp = []#print(day)span = day.find_all('span') #找到所有的span标签#print(span)date = span[0].string  # 找到日期temp.append(date)  # 添加到temp中wea1 = span[1].string#获取天气情况temp.append(wea1) #加入到listtem =str(span[2])tem = tem.replace('<span class="tem"><em>', '')tem = tem.replace('</span>','')tem = tem.replace('</em>','')#tem = tem.find('span').string #获取温度temp.append(tem) #温度加入list
            windy = span[3].stringtemp.append(windy)#加入到listwindy1 = span[4].stringtemp.append(windy1)#加入到list
            final.append(temp)return finaldef write_data(data, name):file_name = namewith open(file_name, 'a', errors='ignore', newline='') as f:f_csv = csv.writer(f)f_csv.writerows(data)if __name__ == '__main__':url ='http://www.weather.com.cn/weather15d/101180101.shtml'html = get_content(url)#print(html)result = get_data(html)#print(result)write_data(result, 'weather7.csv')

 效果如图:

 

项目地址:git@github.com:zhangbei59/weather_get.git

转载于:https://www.cnblogs.com/netsa/p/6835273.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_767189.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站静态化处理—前后端分离—上(6)

前文讲到了CSI技术&#xff0c;这就说明网站静态化技术的讲述已经推进到了浏览器端了即真正到了web前端的范畴了&#xff0c;而时下web前端技术的前沿之一就是前后端分离技术了&#xff0c;那么在这里网站静态化技术和前后端分离技术产生了交集&#xff0c;所以今天我将讨论下前…

交友网站数据库曝光了150万用户信息

据外媒报道&#xff0c; 近日一个新西兰交友网站对一个包含150多万用户信息的数据库进行了安全性保护。这家网站的运营商C&Z Tech Limited表示&#xff0c; MacKeeper安全研究中心的安全专家在发现这个问题后向该公司发出提醒。 C&Z 在发给MacKeeper的邮件中表示&#…

基于SSM的校园招聘网站

​源码编号&#xff1a;D-E22 项目类型&#xff1a;也属于Java web项目/Java EE项目&#xff08;非开源&#xff09; 项目名称&#xff1a;基于SSM的校园招聘网站 [Recruit] 当前版本&#xff1a;V1.0.1版本 难度等级&#xff1a;✩✩ 复杂程度&#xff1a;✩✩✩ 点击查看…

基于Java web的旅游网站(源码+文档)

源码编号&#xff1a;B-E57点击查看&#xff08;分类规则&#xff09; 项目类型&#xff1a;Java web项目/Java EE项目&#xff08;非开源&#xff09; 项目名称&#xff1a;基于java web的旅游网站 [travel] 当前版本&#xff1a;V1.0.0版本 用户类型&#xff1a;双角色&…

基于JSP的旅游网站系统

源码编号&#xff1a;B-E74点击查看&#xff08;分类规则&#xff09; 项目类型&#xff1a;Java web项目/Java EE项目&#xff08;非开源&#xff09; 项目名称&#xff1a;基于JSPServlet的旅游景点服务平台&#xff08;旅游网站&#xff09; 源码作者&#xff1a;霹雳、逍…

基于JSP+Servlet的宠物养护网站

源码编号&#xff1a;B-E77 项目名称&#xff1a;基于JSPServlet的宠物养护网站 源码作者&#xff1a;逍遥游制作 论文作者&#xff1a;逍遥游撰写 当前版本&#xff1a;V1.0版本 用户类型&#xff1a;三角色&#xff08;用户、管理员&#xff09; 项目架构&#xff1a;B…

有图有真相 好图好流量 十个妙招优化网站图片

【51CTO.com快译】对于任何一个电子商务网站来说&#xff0c;图片优化都是必不可少的环节。图片对于消费者和网友的影响妙不可言&#xff0c;优化图片是一门网店里的艺术。图片的清晰度、吸引力和加载时间都将直接影响到你的用户。下面我们就为大家介绍一些优化图片的小技巧&am…

自学Java网站推荐

自学Java可以学会吗&#xff1f; 很多同学问我自学Java能学会吗&#xff0c;我可以很负责任的告诉你完全可以&#xff01;因为俺当初就是自学Java找到的工作&#xff0c;目前互联网资源丰富&#xff0c;只要你想学肯定能学会&#xff01;&#xff01;&#xff01; 自学Java最…

大型网站技术基石之 OpenStack

我们知道虚拟化能够充分的利用资源&#xff0c;带来各种各样的好处。 当一个网站不大&#xff0c;只需要四五台机器就可以支撑的时候&#xff0c;可以采用手工的方式虚拟机&#xff0c;但是当网站流量很高&#xff0c;需要成千上万台机器的时候&#xff0c;那就非常不方便了。 …

云服务器 ECS 搭建WordPress网站:安装 WordPress

安装 WordPress请先下载最新版的 WordPress&#xff0c;网址&#xff1a; https://cn.wordpress.org/ 。也可直接到阿里云市场选择WordPress镜像完成一键部署&#xff0c;点击查看。 操作步骤 1.将下载的安装包解压缩。 2.打开 Xshell&#xff0c;然后打开 Xftp&#xff0c;将解…

云服务器 ECS 建站教程:部署 LAMP (CentOS 7.2)

部署 LAMP &#xff08;CentOS 7.2&#xff09;简介 LAMP指LinuxApacheMysql/MariaDBPerl/PHP/Python是一组常用来搭建动态网站或者服务器的开源软件&#xff0c;本身都是各自独立的程序&#xff0c;但是因为常被放在一起使用&#xff0c;拥有了越来越高的兼容度&#xff0c;共…

​详解SEO优化中所使用的新浪博客站群

SEO优化的过程中网站的权重是关键词排名不可或缺的因素&#xff0c;为了提升网站的权重SEOer通常会利用第三方平台的高权重为SEO所用&#xff0c;今天给大家讲一个关于新浪博客站群的概念以及具体的操作方法。顾名思义新浪博客站群分解开来通俗点来说就是新浪博客的集群&#x…

什么样的自学Java网站才适合学习者?

前言 有很多Java学习者常常问我一些在学习Java过程中遇到的问题&#xff0c;我发现很多问题总是卡在该知识点的概念层面&#xff0c;比如&#xff1a;一个多线程的程序这样加锁对不对&#xff1f;什么是原子性&#xff1f; 这个Lambda表达式为什么编译不通过&#xff1f;这个问…

web设计中那些因素可能影响网站后期优化

开发十年&#xff0c;就只剩下这套Java开发体系了 >>> web设计中那些因素可能影响网站后期优化。 1.网站代码的简洁实用性。网站源文件html代码、js代码、css代码等应尽可能的压缩处理。能用jquery-min.js的最好不要用jquery.js&#xff1b;css里能合在一起的样式尽…

静态网站内容区

1.em与strong&#xff0c;b与i的区别 1.b、i属于修饰标签&#xff1b;strong、em属于内容类标签&#xff1b; 2.b、strong标签表现为加粗样式&#xff1b;em、i表现为倾斜样式&#xff1b; 3.strong、em表强调&#xff1b;strong比em语气更强烈&#xff1b; 4.strong和em真正做…

通过TMG防火墙后网站的GZIP压缩就失效了?

前段时间和一些做网站开发测试的朋友在聊天时&#xff0c;他们提到在做网站测试时发现只要是在公司内走微软TMG访问一些带有GZIP格式的页面时&#xff0c;发现GZIP就失效了&#xff0c;我正好一直在搞ISA/TMG&#xff0c;就想让我帮想想看是哪里出问题了&#xff1f;当时聊时我…

ajax网站拖拽效果

转自&#xff1a;http://hi.baidu.com/yan5201314/blog/item/b69e543d01550bee3c6d9743.html 2006年11月18日 星期六 上午 00:23近日在Syosyumes Blog上的看到GOOGLE的个性化主页拖搁功能的实现方法可以借鉴&#xff0c;他的方法是用Jscript实现&#xff0c;不包含记忆功能&…

.Net Core建站(3):搭建三层架构

啊&#xff0c;终于到写三层架构的时候了&#xff0c;老实说&#xff0c;我都不知道自己这个算不算三层架构&#xff0c;姑且就当它是吧&#xff0c;具体属于哪一个体系&#xff0c;希望有大佬指点一下(^o^)&#xff0f; 不晓得有人注意到没有&#xff0c;我写了三篇博客&#…

计算机技术英语网站,中国致力于成为计算机技术强国

China is ramping中国正在努力致力于成为世界计算机技术强国。JaguarThe US owned Jaguar has a top speed of 1.75 petaflopsIts Nebulae(星云) machine at the National Super Computer Center in Shenzhen, was ranked second on theFor the first time, a second Chinese s…

用CSS网站布局之十步实录

用css网站布局之十步实录 目录&#xff1a; 点击链接查看教程具体内容&#xff01;第一步&#xff1a;规划网站[url]http://www.52css.com/article.asp?id175[/url]第二步&#xff1a;创建html模板及文件目录等[url]http://www.52css.com/article.asp?id176[/url]第三步&…