当前位置: 首页 > news >正文

免费招聘网站有哪些个人网站作业

免费招聘网站有哪些,个人网站作业,wordpress标签tags页,衡阳市做网站一、爬取中国天气网所有地区当天的天气数据#xff08;PyCharm#xff09;#xff1a; 网址#xff1a;https://www.weather.com.cn/ 下面爬取数据#xff1a; 因为现在已经到了夜间#xff0c;所以白天的数据已经不见了#xff0c;但原理是一样的。 二、代码以及详情…一、爬取中国天气网所有地区当天的天气数据PyCharm 网址https://www.weather.com.cn/ 下面爬取数据 因为现在已经到了夜间所以白天的数据已经不见了但原理是一样的。 二、代码以及详情解释 具体的代码的url以及headers是要从检查里面找的 以及这些元素代码的寻找 这个代码是一个用于从中国天气网weather.com.cn抓取天气信息的Python脚本。它使用了 requests 库发送HTTP请求并使用 BeautifulSoup 库解析HTML内容。以下是代码的主要功能和相关知识点的罗列 代码功能概述 遍历多个地区代码通过遍历一个地区列表area构造不同的URL来获取不同地区的天气信息。 发送HTTP请求使用 requests.get() 发送HTTP请求获取网页的HTML内容。 解析HTML使用 BeautifulSoup 解析HTML内容提取所需的天气信息。 提取天气信息从HTML中提取城市名称、上午天气、上午风力风向、上午最高温度、晚上天气、晚上风力风向、晚上最低温度等信息。 去重处理使用集合 processed_cities 来避免重复处理同一个城市的天气信息。 打印结果将提取的天气信息格式化输出到控制台。 涉及的知识点 1. Python基础 列表与循环 使用列表 area 存储地区代码。 使用 for 循环遍历列表中的每个地区。 字符串格式化 使用 f-string如 fhttps://www.weather.com.cn/textFC/{page}.shtml动态构造URL。 集合Set 使用集合 processed_cities 来存储已经处理过的城市名称确保每个城市只被处理一次。 2. HTTP请求 requests 库 使用 requests.get() 发送HTTP GET请求获取网页内容。 设置请求头 headers模拟浏览器访问避免被网站反爬虫机制拦截。 使用 res.encoding utf-8 设置响应内容的编码为UTF-8确保中文内容正确显示。 3. HTML解析 BeautifulSoup 库 使用 BeautifulSoup(res.text, lxml) 解析HTML内容lxml 是解析器。 使用 soup.select() 方法通过CSS选择器查找HTML元素。 使用 find() 和 find_all() 方法查找特定的HTML标签和属性。 4. HTML结构与CSS选择器 HTML表格结构 网页中的天气信息以表格形式展示代码通过查找 div classconMidtab2 和 tr、td 标签来提取数据。 CSS选择器 使用 div.conMidtab2 选择所有 class 为 conMidtab2 的 div 元素。 使用 tr 选择表格行td 选择表格单元格。 HTML属性 通过 width 属性如 width83定位特定的表格单元格。 5. 数据提取与处理 提取文本内容 使用 .string 提取HTML标签内的文本内容如 tr.find(td, width83).a.string。 条件判断 使用 if 语句检查是否存在某个HTML元素或属性避免因元素不存在而报错。 数据格式化与输出 使用 print() 函数将提取的天气信息格式化输出。 6. 去重与集合 集合Set 使用集合 processed_cities 存储已经处理过的城市名称利用集合的唯一性特性避免重复处理。 7. 异常处理未显式实现 代码中没有显式的异常处理如 try-except但在实际应用中建议添加异常处理机制以应对网络请求失败或HTML解析错误等情况。 代码执行流程 遍历地区列表 对每个地区代码如 hb、db 等构造对应的URL。 发送HTTP请求 使用 requests.get() 获取网页内容。 解析HTML 使用 BeautifulSoup 解析HTML查找包含天气信息的表格。 提取天气信息 遍历表格行提取城市名称、天气、风力风向、温度等信息。 去重处理 使用集合 processed_cities 避免重复处理同一城市。 输出结果 将提取的天气信息格式化输出到控制台。 总结 这段代码展示了如何使用Python进行网页抓取和HTML解析涉及的知识点包括 Python基础列表、循环、字符串格式化、集合 HTTP请求requests 库 HTML解析BeautifulSoup 库 HTML结构与CSS选择器 数据提取与处理 去重与集合 通过这段代码可以学习如何从网页中提取结构化数据并将其用于进一步的分析或存储。 import requests from bs4 import BeautifulSoup# 定义地区列表 area [hb, db, hd, hz, hn, xb, xn, gat]for page in area:# 构造 URLurl fhttps://www.weather.com.cn/textFC/{page}.shtmlheaders {user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0}# 发送 HTTP 请求获取网页内容res requests.get(urlurl, headersheaders)res.encoding utf-8 # 设置编码为 UTF-8# 使用 BeautifulSoup 解析网页内容soup BeautifulSoup(res.text, lxml)# 用于存储已经处理过的城市名称processed_cities set()# 遍历所有 class 为 conMidtab2 的 div 元素for div in soup.select(div.conMidtab2):# 遍历 div 中的所有 tr 元素表格行for tr in div.select(tr):# 检查当前行是否包含宽度为 83 的 td 元素该元素可能包含城市信息if tr.find(td, width83):# 检查宽度为 83 的 td 元素中是否有 a 标签a 标签内通常是城市名if tr.find(td, width83).a:# 提取城市名city tr.find(td, width83).a.string# 如果城市已经处理过则跳过if city in processed_cities:continue# 否则将城市添加到已处理集合中processed_cities.add(city)# 打印城市名print(f城市{city})# 提取上午天气信息morning_weather_td tr.find(td, width89)if morning_weather_td:morning_weather morning_weather_td.stringprint(f上午天气{morning_weather})# 提取上午风力风向信息morning_wind_td tr.find(td, width162)if morning_wind_td:spans morning_wind_td.find_all(span)if len(spans) 2:morning_wind_1 spans[0].stringmorning_wind_2 spans[1].stringprint(f上午风力风向{morning_wind_1} {morning_wind_2})# 提取上午最高温度morning_max_temp_td tr.find(td, width92)if morning_max_temp_td:morning_max_temp morning_max_temp_td.stringprint(f上午最高温度{morning_max_temp})# 提取晚上天气信息night_weather_td tr.find(td, width98)if night_weather_td:night_weather night_weather_td.stringprint(f晚上天气{night_weather})# 提取晚上风力风向信息night_wind_td tr.find(td, width177)if night_wind_td:spans night_wind_td.find_all(span)if len(spans) 2:night_wind_1 spans[0].stringnight_wind_2 spans[1].stringprint(f晚上风力风向{night_wind_1} {night_wind_2})# 提取晚上最低温度night_min_temp_td tr.find(td, width86)if night_min_temp_td:night_min_temp night_min_temp_td.stringprint(f晚上最低温度{night_min_temp})# 打印分隔线用于区分不同城市的天气信息print(-----------------)else:# 如果当前行不包含宽度为 83 的 td 元素跳过该行continue 三、代码运行结果展示
http://www.zqtcl.cn/news/793966/

相关文章:

  • 做网站前后端的发布流程如何管理wordpress网站模板下载
  • 网站历史频道怎么做网站修改标题有影响吗
  • 做自己的卡盟网站做技术一般逛那些网站
  • 网站建设自学多长时间做网站原型的软件
  • 营销型的物流网站模板北京楼市最新消息
  • 宁波模版建站公司湘潭建设网站公司
  • 世界十大网站排名出炉最新军事新闻最新消息视频
  • 医疗电子的网站建设城市建设管理
  • win10建站wordpress商城网站结算页面怎么做
  • 电商网站模板引擎惠阳做网站公司
  • 如何在百度做网站推广中企动力企业邮箱手机邮箱
  • extjs做的网站开发公司宣传语
  • 长安做外贸网站关于阅读类网站的建设规划书
  • php网站建设思路方案阿里巴巴如何建设网站
  • 网站做什么推广好网站域名注册步骤
  • 官方建网站有哪些步骤国内成熟的crm系统
  • 建设银行深圳天健世纪支行网站电子商务网站建设员
  • 个人备案域名可以做企业网站吗海南做公司网站
  • 浙江坤宇建设有限公司网站施工企业施工生产计划
  • 成都建站推广域名备案用的网站建设方案
  • 西安市城乡建设管理局网站6一级域名生成二级域名
  • 网站建设沙漠风服装公司网站源码
  • 体检营销型网站php网站建设培训班
  • 做洁具最好的网站数据分析
  • 郑州网站建设丶汉狮网络网站建设中图片是什么意思
  • 深圳网站建设公司设计公司做影视网站用主机还是用服务器
  • 网站建设价格如何做问卷调查网站
  • 网络营销推广合同天津网站seo策划
  • 明年做那个网站致富wordpress loper
  • 网站开发原理柳州网站推广