import jieba.analysefrom wordcloud import wordcloud, imagecolorgenerator,stopwords
from imageio import imread
import matplotlib.pyplot as plt
from urllib import request
import time
from lxml import etree
class wc():
def __init__(self, txt_file, img_file,front):
self.f = open(txt_file, 'r', encoding='utf-8')
self.txt = self.f.read()
self.f.close()
self.tags = jieba.analyse.extract_tags(self.txt, topk=100)
self.img = imread(img_file)
# font_path指的是字型檔案路徑,因為wordcloud自帶的字型不支援中文所以我們要指定乙個字型檔案,否者輸出的全是框框
# background_color 預設是黑色 我設定成白色
# max_words最大顯示的詞數
# mask 背景
# max_font_size 最大字型字型大小
self.text = ' '.join(self.tags)
self.wc = wordcloud(
font_path='./fonts/simhei.ttf',
background_color='white',
max_words=100,
mask=self.img,
max_font_size=80).generate(self.text)
def get_url_content(self):
url = ''
headers =
#構建請求
req = request.request(url=url,headers=headers)
# 傳送請求
response = request.urlopen(req)
content = response.read()
xpath_content = etree.html(content)
#//*[@id="chapter-339991957"]/div/div[2]
#//*[@id="chapter-339991957"]/div/div/p/text()
new_content = xpath_content.xpath('//*[@id="chapter-339991957"]/div/div/p/text()')
with open('sanwen.txt','w',encoding='utf-8') as f:
for i in new_content:
f.writelines(i.strip())
time.sleep(2)
def show_wc(self):
plt.imshow(self.wc)
# 可以通過 plt.imshow(self.wc.recolor(color_func=img_color))使顏色跟字型顏色一樣
plt.axis("off")
plt.show()
self.wc.to_file('result.png')
if __name__ == '__main__':
mywc = wc('sanwen.txt', 'timg.png','agencyr.ttf')
mywc.get_url_content() #網上爬蟲,爬內容寫到txt檔案中
mywc.show_wc() #詞云,填充顯示我們輪廓
爬蟲之豆瓣詞云
from urllib import request from bs4 import beautifulsoup as bs import reimport codecs import jieba 分詞包import numpy numpy計算包 import pandas as pd 分詞用到 i...
jquery 結合ajax例子
首先在頁面要引用 jquery 的類庫檔案 btnsub click function success function msg error function 注意 如果返回值型別是 html 則msg 的值為帶有基本的 html 標籤如果只想要輸出的結果值 那麼在非同步請求的頁面使用過 respo...
網路爬蟲例子
一 最簡單的乙個例子 如下 import requests url res requests.get url res.encoding utf 8 print res.text res.text是網頁的內容,就是在瀏覽器中檢視網頁源 看到的內容 上面的 requests 就是用來訪問網路獲取資訊的模...