本文来源吾爱破解论坛
本帖最后由 天空宫阙 于 2019-3-9 20:43 编辑 result.jpg (303.47 KB, 下载次数: 1)
下载附件
保存到相册
吾爱悬赏区词频分析.jpg (114.93 KB, 下载次数: 1)
下载附件
保存到相册
入门级网页爬虫的简单应用,大神就不用看了
先放结果
这是我爬取了论坛悬赏区,200页一共一万条标题的词频分析。
结果表明论坛的小伙伴的高频问题是:求视频(下载),教程,下载(文件,文库),(破解)软件,工具,源码,模板等等
对这些方面有一技之长的大佬就很容易挣到CB。
实现思路
注意事项:
1.python版本:python3.7
2.自行pip3 install 代码中import的相关库(部分库不能通过pip成功安装的自行百度)
wuai_statistics.py中的代码
[Python] 纯文本查看 复制代码
import requests from requests.exceptions import RequestException from bs4 import BeautifulSoup import re import time #请求头的修改 headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36' } #请求一个网页 def get_html(url): try: response = requests.get(url,headers=headers) response.raise_for_status() #print(response.apparent_encoding) response.encoding = 'GB2312' return response.text except: print('请求失败') def parse_html(html): soup = BeautifulSoup(html, "lxml") thread = soup.select('#threadlisttableid')[0] tbodys = thread.find_all(id = re.compile('normalthread')) for tbody in tbodys: title = tbody.select('a')[2].string try: with open('wuai_statistics.txt', 'a', encoding='utf-8') as f: f.write(title+'\n') f.close() except: continue def main(page): url='https://www.52pojie.cn/forum.php?mod=forumdisplay&fid=8&specialtype=reward&filter=specialtype&specialtype=reward&rewardtype=1&page='+str(page) html = get_html(url) parse_html(html) if __name__ == '__main__': for page in range(1,201): print('正在保存第'+str(page)+'页') main(page) print('成功')
wordcloud_jieba.py中代码
[Python] 纯文本查看 复制代码
import numpy as np from PIL import Image import re import jieba from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS import matplotlib.pyplot as plt # 打开存放项目名称的txt文件 with open('wuai_statistics.txt','r',encoding='utf-8') as f: word= (f.read()) f.close() ''' # 图片模板和字体 image=np.array(Image.open('ditu.jpg')) ''' font=r'C:\\Windows\\fonts\\msyh.ttf' # 去掉英文,保留中文 resultword=re.sub("[A-Za-z0-9\[\`\~\!\@\#\$\^\&\*\(\)\=\|\{\}\'\:\;\'\,\[\]\.\<\>\/\?\~\。\@\#\\\&\*\%]", "",word) wordlist_after_jieba = jieba.cut(resultword) wl_space_split = " ".join(wordlist_after_jieba) # 设置停用词 sw = set(STOPWORDS) sw.add("一个") sw.add("求个") sw.add("可以") sw.add("怎么") sw.add("如何") sw.add("求助") sw.add("一份") sw.add("或者") sw.add("有没有") sw.add("一款") sw.add("帮忙") # 关键一步 my_wordcloud = WordCloud(scale=4,font_path=font,stopwords=sw,background_color='white', max_words = 100,max_font_size = 60,random_state=20).generate(wl_space_split) #显示生成的词云 plt.imshow(my_wordcloud) plt.axis("off") plt.show() #保存生成的图片 my_wordcloud.to_file('result.jpg')
使用方法:
1.运行wuai_statistics.py爬取悬赏区标题200页(为了防止对网站服务器造成不必要的压力就不爬很多)保存到txt中
2.运行wordcloud_jieba.py对txt文件中的文字进行分析,采用jieba对汉字进行分词,wordcloud进行词频统计(wordcloud和jieba我这边是不能进行pip自动安装的或者说速度特别慢,安装方法请自行百度),生成本帖最上面的图片
3.wordcloud_jieba.py中设置的停用词也是高频出现的,因为没有实际含义所以不统计在内。
源码已经放上了
但土豪大佬可以下载一下源码文件
下载积分: 吾爱币 -1 CB
帮忙, 本帖被以下淘专辑推荐: · 兄dei,上车吗?|主题: 376, 订阅: 863 · 吾爱收集|主题: 318, 订阅: 98 · SunGeekHouse|主题: 211, 订阅: 49 · zzzain46私家珍藏|主题: 131, 订阅: 24
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。