当前位置: 首页 > 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.pierceye.com/news/793966/

相关文章:

  • 做中英文版的网站需要注意什么怎么解决
  • 电子商务网站开发附件一个外国人做的汉子 网站
  • 找南昌网站开发公司电话寓意好的公司名字
  • 网站商城设计方案做网站的图片传进去很模糊
  • 百度站长平台电脑版cpm广告联盟平台
  • 哪些网站需要做分享按钮米卓网站建设
  • 做的网站怎样评估价值微商城网站建设平台
  • 后台网站更新 网站没显示广告投放代理商
  • 北京住房保障建设投资中心网站wordpress文章页面修改
  • 游戏网站建设项目规划书案例集约化网站群建设情况
  • 网站策划书编写阿里云部署多个网站
  • 品牌高端网站制作公司佛山新网站建设如何
  • 网站开发中怎么设置快捷键网页设计知名网站
  • 公司网上注册在哪个网站分析网络营销方式
  • 网站用什么颜色外贸企业建站公司
  • 网站下载音乐网站开发公司知乎
  • 什么样式表一般用于大型网站什么是seo搜索
  • 做网站用vue还是用jquery济宁网站建设 中企动力临沂
  • 网站专题教程最吸引人的营销广告词
  • 瑞安网站网站建设如何推广自己的店铺
  • 建设网站花都水泥公司网站建设
  • asp网站怎么下载源码农业做的好的网站
  • 导购网站怎么做视频教学网页设计与制作教程第5版
  • 建设部施工安全管理网站网站建设公司如何
  • 企业商城建站公司网站页面加密
  • 昆山教育云平台网站建设软件工程师考试报名
  • ps做网站大小尺寸大连开发区商场
  • 化妆品网站建设网站右键禁止
  • wordpress 没有样式表网站如何免费做SEO优化
  • 青岛有没有专门做淘宝网站中国建设人才网站