# pip install bs4
from bs4 import BeautifulSoup # python 爬蟲利器
"""
Beautiful Soup 是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python庫.
它能夠通過你喜歡的轉(zhuǎn)換器實(shí)現(xiàn)慣用的文檔導(dǎo)航,查找,
修改文檔的方式.Beautiful Soup會幫你節(jié)省數(shù)小時(shí)甚至數(shù)天的工作時(shí)間.
"""
import requests
blog_url = 'https://blog.51cto.com/13118411/2154806'
data = requests.get(blog_url)
print(data)
print(data.text)
天氣預(yù)報(bào)定制-cooperfang的博客-51CTO博客
天氣預(yù)報(bào)定制
# api aplication programming interface
# 不通軟件不同系統(tǒng)之間的功能相互調(diào)用
# json是其中重要的一種數(shù)據(jù)交換形式
# 定制天氣預(yù)報(bào) https://www.sojson.com/open/api/weather/json.shtml?city=
# http://jsonviewer.stack.hu/
# https://www.sojson.com/open/api/weather/json.shtml
?city=%E5%8C%97%E4%BA%AC
import requests # pip install requests 請求 網(wǎng)上api的調(diào)用形式
url = 'https://www.sojson.com/open/api/weather/json.shtml?city='
city = '北京'
ret = requests.get(url + city) # 請求的對象
print(ret.json())
{'date': '20180804', 'message': 'Success !', 'status': 200, 'city': '北京', 'count': 9, 'data': {'shidu': '70%', 'pm25': 44.0, 'pm10': 78.0, 'quality': '良', 'wendu': '30', 'ganmao': '極少數(shù)敏感人群應(yīng)減少戶外活動', 'yesterday': {'date': '03日星期五', 'sunrise': '05:13', 'high': '高溫 36.0℃', 'low': '低溫 26.0℃', 'sunset': '19:27', 'aqi': 107.0, 'fx': '南風(fēng)', 'fl': '<3級', 'type': '晴', 'notice': '愿你擁有比陽光明媚的心情'}, 'forecast': [{'date': '04日星期六', 'sunrise': '05:14', 'high': '高溫 36.0℃', 'low': '低溫 27.0℃', 'sunset': '19:26', 'aqi': 97.0, 'fx': '南風(fēng)', 'fl': '<3級', 'type': '晴', 'notice': '愿你擁有比陽光明媚的心情'}, {'date': '05日星期日', 'sunrise': '05:15', 'high': '高溫 35.0℃', 'low': '低溫 25.0℃', 'sunset': '19:25', 'aqi': 103.0, 'fx': '東南風(fēng)', 'fl': '<3級', 'type': '雷陣雨', 'notice': '帶好雨具,別在樹下躲雨'}, {'date': '06日星期一', 'sunrise': '05:16', 'high': '高溫 31.0℃', 'low': '低溫 25.0℃', 'sunset': '19:24', 'aqi': 97.0, 'fx': '南風(fēng)', 'fl': '<3級', 'type': '雷陣雨', 'notice': '帶好雨具,別在樹下躲雨'}, {'date': '07日星期二', 'sunrise': '05:17', 'high': '高溫 31.0℃', 'low': '低溫 25.0℃', 'sunset': '19:22', 'aqi': 113.0, 'fx': '西南風(fēng)', 'fl': '<3級', 'type': '雷陣雨', 'notice': '帶好雨具,別在樹下躲雨'}, {'date': '08日星期三', 'sunrise': '05:18', 'high': '高溫 30.0℃', 'low': '低溫 24.0℃', 'sunset': '19:21', 'aqi': 68.0, 'fx': '東南風(fēng)', 'fl': '<3級', 'type': '雷陣雨', 'notice': '帶好雨具,別在樹下躲雨'}]}}
# 象字典一樣取值
d = ret.json()
# print(d['status'])
# print(d['city'])
# print(d['data'])
# print(d['data']['yesterday'])
def hot_weather(data):
"""定制化天氣預(yù)報(bào)"""
try:
weather_list = data['data']['forecast']
# print(weather_list)
for day in weather_list:
print(day['date'], day['high'], day['low'], day['sunset'], day['notice'])
except Exception as e:
print(e)
hot_weather(d)
04日星期六 高溫 36.0℃ 低溫 27.0℃ 19:26 愿你擁有比陽光明媚的心情
05日星期日 高溫 35.0℃ 低溫 25.0℃ 19:25 帶好雨具,別在樹下躲雨
06日星期一 高溫 31.0℃ 低溫 25.0℃ 19:24 帶好雨具,別在樹下躲雨
07日星期二 高溫 31.0℃ 低溫 25.0℃ 19:22 帶好雨具,別在樹下躲雨
08日星期三 高溫 30.0℃ 低溫 24.0℃ 19:21 帶好雨具,別在樹下躲雨
%cd D:\全棧\json api
d = ret.json()
import json
with open('weather.json', 'w') as f:
json.dump(d, f)
D:\全棧\json api
?著作權(quán)歸作者所有:來自51CTO博客作者cooperfang的原創(chuàng)作品,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
contents = BeautifulSoup(data.text, 'html.parser') # data.text博客文本,html.parser這個(gè)類自帶的功能
# print(contents) 輸出更標(biāo)準(zhǔn)化
all_p = contents.find_all('p') # 尋找p標(biāo)簽
all_text = ''
for p in all_p:
# print(p.text)
all_text += str(p.text) # 拼接成一個(gè)句子
print(all_text)
掃一掃體驗(yàn)手機(jī)閱讀0分享收藏Ctrl+Enter?發(fā)布發(fā)布取消0
# pip install jieba 對中文進(jìn)行拆解為獨(dú)立的詞語
import jieba
text = jieba.cut(all_text) # jieba.cut()
"""
Signature: jieba.cut(sentence, cut_all=False, HMM=True)
Docstring:
The main function that segments an entire sentence that contains
Chinese characters into seperated words.
"""
text_list= []
for t in text:
print(t)
text_list.append(t)
Building prefix dict from the default dictionary ...
Dumping model to file cache C:\Users\coop\AppData\Local\Temp\jieba.cache
Loading model cost 1.107 seconds.
Prefix dict has been built succesfully.
掃一掃
體驗(yàn)
手機(jī)
閱讀
0
分享
收藏
Ctrl
+
Enter
?
發(fā)布
發(fā)布
取消
0
import collections # python 內(nèi)置的api,以上jieba也可叫做api,收集
count = collections.Counter(text_list) # 產(chǎn)生一個(gè)對象count
for key, val in count.most_common(30):
# 有序(返回前n個(gè)出現(xiàn)次數(shù)最多的)
print(key, val)
0 2
發(fā)布 2
掃一掃 1
體驗(yàn) 1
手機(jī) 1
閱讀 1
分享 1
收藏 1
Ctrl 1
+ 1
Enter 1
? 1
取消 1
# 做接口 可以給被人這個(gè)py文件,也可以是個(gè)鏈接
import collections
def get_most_common(text_list, max_num = 30):
"""根據(jù)max_num取排名靠前的詞和出現(xiàn)次數(shù)"""
ret = {'status':0, "statusText":'ok', 'data':{}} # api通用格式
try:
new_list = list(text_list)
count = collections.Counter(new_list)
ret['data'] = count.most_common(max_num)
except Exception as e:
ret['status'] = 1
ret['statusText'] = e
return ret
get_most_common(text_list)
{'status': 0,
'statusText': 'ok',
'data': [('0', 2),
('發(fā)布', 2),
('掃一掃', 1),
('體驗(yàn)', 1),
('手機(jī)', 1),
('閱讀', 1),
('分享', 1),
('收藏', 1),
('Ctrl', 1),
('+', 1),
('Enter', 1),
('\xa0', 1),
('取消', 1)]}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
創(chuàng)新互聯(lián) 專注于企業(yè)
營銷型網(wǎng)站建設(shè) 、網(wǎng)站重做改版、黔西南州網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、
H5場景定制 、
成都商城網(wǎng)站開發(fā) 、集團(tuán)公司官網(wǎng)建設(shè)、
外貿(mào)營銷網(wǎng)站建設(shè) 、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為黔西南州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
新聞名稱:詞頻統(tǒng)計(jì)-創(chuàng)新互聯(lián)
分享路徑:
http://weahome.cn/article/dospeo.html
Ctrl+Enter 發(fā)布
發(fā)布
取消