爬取天气信息,并存储到txt文件
2023-09-14 09:14:59 时间
爬取天气信息,并存储到txt文件
import requests
from bs4 import BeautifulSoup
import xpinyin
#
def getHtml(url, header=None):
if header != None:
res = requests.get(url, headers=header)
else:
res = requests.get(url)
res.encoding = 'utf8'
if res.status_code == 200:
return res.text
return None
#请求头
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
'Host':'lishi.tianqi.com',
'Accept-Encoding': "gzip, deflate, br",
'Connection': "keep-alive",
'cache-control': "max-age=0"}
def getURL(city, month, year=2022):
p = xpinyin.Pinyin()
city = p.get_pinyin(city).replace("-", "")
if month < 10:
month = "0" + str(month)
return "https://lishi.tianqi.com/" + city + "/" + str(year) + str(month) + ".html"
dic = {"晴": 0,"阴": 1,"多云": 2,"风": 3, "霾": 4, "雾":5,"小雪": 6,
"中雪": 7, "大雪": 8,"小雨": 9,"中雨": 10,"大雨": 11,"阵雨":12,
"暴雨":13}
citys = ["海南","晋城"]
for city in citys:
with open(city + "2022天气数据.txt", 'w', encoding='utf8') as f:
for m in range(1, 13):
cnt = 1
url = getURL(city, m)
html = getHtml(url, headers)
soup = BeautifulSoup(html, 'html.parser')#解析器,正则表达式
weather_html = soup.findAll("ul", class_="thrui")[0]
weather = weather_html.text
weather = weather.split("\n\n")[:-1]
for d in weather:
if d != "":
dd = d.replace("\n", " ")
dd = dd.split(" ")
print(dd)
m = str(m)
dd[0] = m.rjust(2,"0")
dd[1] = cnt
cnt += 1
dd[3] = dd[3][:-1]
dd[4] = dd[4][:-1]
sss = dd[5]
sss = sss.split("转")[0]
sss = sss.split("到")[0]
#print(sss)
dd[5] = dic[sss]
#print(dd)
ss=str(dd[0])+" "+str(dd[1])+" "+str(dd[3])+ " "+str(dd[4])+" "+str(dd[5])+"\n"
#mysql.insert(str(dd[0]), str(dd[4]), str(dd[3]), str(dd[5]), city)
#dd=dd+"\n"
#print(ss)
f.write(ss)
相关文章
- window bat 切换目录并执行php文件
- Ubuntu 文件文件夹查看权限和设置权限
- Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制
- java struts2入门学习--基于xml文件的声明式验证
- 读写内部存储的文件数据
- ifcfg-<interface-name> 文件配置详解
- 读写内部存储的文件数据
- 关于文件的存储——windows和Linux比较
- 阿里云 OSS文件存储挂到云服务器ESC文件系统中
- 正确使用阿里云NAS文件存储服务系列之文件权限校验
- ArcGIS Engine开发之旅07---文件地理数据库、个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较 、打开栅格数据
- SAP Spartacus 项目里的 .env-cmdrc 文件
- Kubernetes使用Jenkins服务器存储所有的kube.config文件
- Atitit Java内容仓库(Java Content Repository,JCR)的JSR-170 文件存储api标准 目录 1. Java内容仓库1 2. Java内容仓库2 2.1.
- AutoJs学习-实现复制文件和文件夹
- Py之pandas:在表格文件中增加数据之for循环纵向/竖向非覆盖式增加数据到同一个csv文件内
- 零基础学Python-爬虫-2、scrapy框架(测试案例篇·技术点在后面文章内讲解)【测试将一篇小说的所有访问路径与标题存储到一个文件下】
- C++ QT中文件的读写操作(UI界面)
- vss 日文文件路径的名字在中文系统下乱码
- java - 下载或预览文件
- vs 编译时不断出现该文件已在源编辑器之外被修改弹窗
- python读取写入csv文件
- 【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 拷贝 DEX 文件到内置存储 | 加载并执行 DEX 字节码文件 )
- vs code快速新建一个HTML文件
- lucene倒排索引瘦身的一些实验——merge的本质是减少cfx文件 变为pos和doc;存储term vector多了tvx和tvd文件有337M
- python berkeley DB操作——打开btree索引文件中的database
- Ab3d.Reader3ds - 3ds 文件导入器 --FIX-Crack
- 详解通讯录(静态版、动态增长版、文件存储版)