在‘句子迷’爬取网友总结的方文山歌词并作词频统计
要求:
- 选一个自己感兴趣的主题。
- 用python 编写爬虫程序,从网络上爬取相关主题的数据。
- 对爬了的数据进行文本分析,生成词云。
- 对文本分析结果进行解释说明。
- 写一篇完整的博客,描述上述实现过程、遇到的问题及解决办法、数据分析思想及结论。
- 最后提交爬取的全部数据、爬虫及数据分析源代码。
在此次作业中,我通过爬取网站‘句子迷’中方文山的歌词片段来看其作词中词频以及网友较为喜欢方老师那些句子。
在爬取的过程中主要遇到的问题是该网站对于请求过来的headers
有做检查,所以需要加入headers
参数,声明UA
。
代码如下:
import jieba
import requests
from bs4 import BeautifulSouplyrics = ''
headers = {'User-Agent': 'User-Agent:*/*'
}resp = requests.get('http://www.juzimi.com/writer/%E6%96%B9%E6%96%87%E5%B1%B1', headers=headers)
resp.encoding = 'UTF-8'
print(resp.status_code)
soup = BeautifulSoup(resp.text, 'html.parser')page_url = 'http://www.juzimi.com/writer/%E6%96%B9%E6%96%87%E5%B1%B1?page={}'
page_last = soup.select('.pager-last')
if len(page_last) > 0:page_last = page_last[0].textfor i in range(0, int(page_last)):print(i)resp = requests.get(page_url.format(i), headers=headers)resp.encoding = 'UTF-8'soup = BeautifulSoup(resp.text, 'html.parser')for a in soup.select('.xlistju'):lyrics += a.text + ' '# 保留爬取的句子
with open('lyrics.txt', 'a+', encoding='UTF-8') as lyricFile:lyricFile.write(lyrics)# 加载标点符号并去除歌词中的标点
with open('punctuation.txt', 'r', encoding='UTF-8') as punctuationFile:for punctuation in punctuationFile.readlines():lyrics = lyrics.replace(punctuation[0], ' ')# 加载无意义词汇
with open('meaningless.txt', 'r', encoding='UTF-8') as meaninglessFile:mLessSet = set(meaninglessFile.read().split('\n'))
mLessSet.add(' ')# 加载保留字
with open('reservedWord.txt', 'r', encoding='UTF-8') as reservedWordFile:reservedWordSet = set(reservedWordFile.read().split('\n'))for reservedWord in reservedWordSet:jieba.add_word(reservedWord)keywordList = list(jieba.cut(lyrics))
keywordSet = set(keywordList) - mLessSet # 将无意义词从词语集合中删除
keywordDict = {}# 统计出词频字典
for word in keywordSet:keywordDict[word] = keywordList.count(word)# 对词频进行排序
keywordListSorted = list(keywordDict.items())
keywordListSorted.sort(key=lambda e: e[1], reverse=True)
# 将所有词频写出到txt
for topWordTup in keywordListSorted:print(topWordTup)with open('word.txt', 'a+', encoding='UTF-8') as wordFile:for i in range(0, topWordTup[1]):wordFile.write(topWordTup[0]+'\n')
上面的代码生成的word.txt
中,将词汇复制到网站https://wordsift.org/做词云生成,生成后的词云图如下:
以上代码可在此下载
转载于:https://www.cnblogs.com/lger/p/8908426.html
在‘句子迷’爬取网友总结的方文山歌词并作词频统计相关推荐
- python爬音乐-用python爬取网易云音乐歌曲的歌词
今天我来分享一下如何用python爬取网易云音乐歌曲的歌词,网易云音乐的歌词的爬取思路同前面介绍过的爬取网易云音乐的歌曲评论的爬取思路一致.由于两者的加密思路都是一致的,因此我们只需分析出被加密了的参 ...
- 【python】 爬取网易云音乐 专辑图片+歌词
要求 下载一百首歌曲,相关图片以及相关文字信息 存储方式分别为: .mp3 .txt .png 比如第一首歌曲相关信息为001.mp3\001.txt\001.png 觉得像是小朋友的抄写作业有没有- ...
- python爬取网易云音乐 专辑图片+歌词
思路 一开始的想法是全都直接根据歌单获取歌曲的ID,然后每首歌都按那个格式001.mp3\001.txt\001.png存下来 后来发现我好像做不到直接下mp3--因为在网页版一点会跳出来请在PC版下 ...
- python soup歌词_【python】 爬取网易云音乐 专辑图片+歌词
要求 下载一百首歌曲,相关图片以及相关文字信息 存储方式分别为: .mp3 .txt .png 比如第一首歌曲相关信息为001.mp3\001.txt\001.png 觉得像是小朋友的抄写作业有没有- ...
- 利用python爬取网易云歌手top50歌曲歌词
python近年来,发展迅速,成为了最炙手可热的语言. 那么如何来进行网易云歌手top50的歌曲歌词爬取呢 1. 首先进行网易云并进行喜欢的歌手搜索如下: 在这里需要注意的是http://music. ...
- 【python爬虫自学笔记】-----爬取网易云歌单中歌曲歌词
工具:python3.6 ,pycharm 个人歌单的链接地址为https://music.163.com/#/playlist?id=2251736705 开始对网页的内容进行爬取的时候,使用req ...
- python soup歌词_python从入门到放弃篇35(BeautifulSoup库)爬取A神waiting for love歌词
今天,在研究BeautifulSoup库的使用方法和技巧,我看了一下BeautifulSoup库函数,觉得BeautifulSoup库没有lxml库的xpath函数那么好用,各有优势吧. 案例网址:h ...
- 网站开发:爬取一拨网易云音乐的歌词
啦啦啦,之前一直在做个音乐网站,然后涉及到了歌词,可当时自己不懂歌词的爬取链接,所以一直采用的手录歌词的方法,费时又费力.前两天在一篇CSDN文章上发现了网易云的歌词链接.然后就立马利用起来爬取一拨歌 ...
- 爬取QQ音乐周杰伦歌曲的歌词
代码如下: import requests import json # 引用requests,json模块url = 'https://c.y.qq.com/soso/fcgi-bin/client_ ...
- 【Python爬虫】爬取新浪微博评论看网友如何评价NBA季后赛火箭VS爵士G3
网友如何评论NBA季后赛火箭VS爵士G3 爬取网友评论 首先我们找到一篇关于比赛的微博 生成词云图 我们看看关键的几个人物:哈登,米切尔,塔克,徐坤(乱入?) 哈登 莫非今天又是常规操作30+?MVP ...
最新文章
- web布局最实用的12条css技巧
- 剑指Offer_08_跳台阶
- 组合数的简单求法(dfs)
- PHP内核之PHP_FUNCTION宏定义
- Windows下Visual studio 2013 编译 Audacity
- linux编译警告 will be initialized after
- rsync android app,如何rsync到android
- python爬虫案例-爬取西刺免费代理服务器IP等信息
- 基于Verilog的简易计算器
- Windows目录下SysWow64文件夹与System32文件夹
- Hadoop原理简介
- 电脑在登陆界面如何打开计算机管理,无线路由器管理界面如何登录 无法进入管理界面怎么办...
- 锐捷交换机查询端口对应的IP,IP对应的端口
- phpnow mysql_PHPNOW中如何建立MYSQL数据库连接?
- 计算机添加定时启动软件,有什么软件可以让电脑定时开机?除了设定BIOS!
- html网页制作提交注册信息,利用HTML表单标签编写一个注册页面
- 泰文utf-8转unicode编码实现
- 计算3个地理坐标点之间的夹角
- Quartz简介及初始化
- 还没理解微前端?手把手教你实现一个迷你版