H.E.G. 发表于 2021-6-4 11:41:28

如何用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:}

skyrimz 发表于 2021-6-19 09:51:47

jieba分词

H.E.G. 发表于 2021-6-20 15:42:19

刚刚找到了更简便的方法{: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('')
请问还能再化简吗?

白本羽 发表于 2021-6-20 20:31:58

正则表达式...第一个就把)括号前的全取下来,第二个就用空格来取,

nahongyan1997 发表于 2021-6-20 20:51:08

代码敬上,请给最佳!!!
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)

H.E.G. 发表于 2021-7-26 16:56:06

nahongyan1997 发表于 2021-6-20 20:51
代码敬上,请给最佳!!!

还算一种新鲜的方法吧{:10_256:}
页: [1]
查看完整版本: 如何用python分词