如何用python分词
日常提问时间{:10_256:}from bs4 import BeautifulSoup
import requests,jieba
response = requests.get("https://tianqi.so.com/weather/101230301")#网页信息
response.encoding = "utf-8"
bs = BeautifulSoup(response.text,'html.parser')
wea = bs.find_all('div',class_='temp-realtime')#创造wea的类
wea = wea.get_text()
res = jieba.cut(wea)
word = ' '.join(res)
wea = +'°C',word]
all_wea = bs.find_all('ul',class_='weather-columns')
for i in range(len(all_wea)):
all_wea = all_wea.get_text().replace('\n','')#替换
for j in all_wea:
print(j)#输出
输出:
今天 (06-04) 中雨转小雨21/24℃优持续无风向 微风
明天 (06-05) 小雨转多云21/25℃优持续无风向 微风
周日 (06-06) 晴19/31℃优持续无风向 微风
周一 (06-07) 晴转多云23/30℃优持续无风向 微风
周二 (06-08) 中雨转多云25/29℃优持续无风向 微风
周三 (06-09) 中雨转小雨25/30℃优持续无风向 微风
周四 (06-10) 中雨转多云25/30℃优持续无风向 微风
周五 (06-11) 小雨22/30℃优西南风 微风
周六 (06-12) 小雨转阴22/29℃优西南风 微风
周日 (06-13) 小雨23/29℃优西风 微风
周一 (06-14) 小雨23/26℃优东南风 微风
周二 (06-15) 小雨23/31℃优东北风 微风
周三 (06-16) 小雨24/29℃优北风 微风
周四 (06-17) 小雨转阴21/25℃优东风 微风
周五 (06-18) 阴转小雨21/28℃优东风 微风
请问,如何把这些单独的词分离出来(如:明天 (06-05),小雨转多云,21/25℃,优,持续无风向,微风){:10_277:} jieba分词 刚刚找到了更简便的方法{:10_256:}
利用.split()语句
from bs4 import BeautifulSoup
import requests,jieba
response = requests.get("https://tianqi.so.com/weather/101230301")#网页信息
response.encoding = "utf-8"
bs = BeautifulSoup(response.text,'html.parser')
wea = bs.find_all('div',class_='temp-realtime')#创造wea的类
wea = wea.get_text()
res = jieba.cut(wea)
word = ' '.join(res)
wea = +'°C',word]
all_wea = bs.find_all('ul',class_='weather-columns')
for index in range(len(all_wea)):
all_wea = all_wea.get_text().replace('\n','')
for index in range(15):
content = all_wea.split(' ')
all_wea.append(content)
del all_wea[:15]
for j in range(15):
for i in range(20):
all_wea.remove('')
请问还能再化简吗? 正则表达式...第一个就把)括号前的全取下来,第二个就用空格来取, 代码敬上,请给最佳!!!
from bs4 import BeautifulSoup
import requests,jieba
response = requests.get("https://tianqi.so.com/weather/101230301")#网页信息
response.encoding = "utf-8"
bs = BeautifulSoup(response.text,'html.parser')
wea = bs.find_all('div',class_='temp-realtime')#创造wea的类
wea = wea.get_text()
res = jieba.cut(wea)
word = ' '.join(res)
wea = +'°C',word]
all_wea = bs.find_all('ul',class_='weather-columns')
for i in range(len(all_wea)):
all_wea = all_wea.get_text().replace('\n','')#替换
##all_wea = ["今天 (06-04) 中雨转小雨21/24℃优持续无风向 微风",
##"明天 (06-05) 小雨转多云21/25℃优持续无风向 微风",
##"周日 (06-06) 晴19/31℃优持续无风向 微风",
##"周一 (06-07) 晴转多云23/30℃优持续无风向 微风",
##"周二 (06-08) 中雨转多云25/29℃优持续无风向 微风",
##"周三 (06-09) 中雨转小雨25/30℃优持续无风向 微风",
##"周四 (06-10) 中雨转多云25/30℃优持续无风向 微风",
##"周五 (06-11) 小雨22/30℃优西南风 微风",
##"周六 (06-12) 小雨转阴22/29℃优西南风 微风",
##"周日 (06-13) 小雨23/29℃优西风 微风",
##"周一 (06-14) 小雨23/26℃优东南风 微风",
##"周二 (06-15) 小雨23/31℃优东北风 微风",
##"周三 (06-16) 小雨24/29℃优北风 微风",
##"周四 (06-17) 小雨转阴21/25℃优东风 微风",
##"周五 (06-18) 阴转小雨21/28℃优东风 微风"]
for j in all_wea:
temp = j.split(" ")
# 去掉多余的空格
str1 = ""
for each_str in temp:
if each_str:
str1 += each_str + " "
str1 = str1[:-1]
temp = str1.split(" ")
date = temp+temp
wather = temp
infos = temp
wind_speed = temp
temperature = infos.split("℃")+"℃"
rate = infos
wind_diraction = infos
# 完美收工,打印结果
print(date,wather,wind_speed,temperature,rate,wind_diraction)
nahongyan1997 发表于 2021-6-20 20:51
代码敬上,请给最佳!!!
还算一种新鲜的方法吧{:10_256:}
页:
[1]