Python爬虫项目分享二:《爬取周杰伦的歌曲评论》

python爬取周杰伦的歌曲评论

偶得一不错的爬虫教程,现博客分享,想要获取完整教程,加V:ff17328081445。文章为系列文章,持续更新,欢迎关注。

浏览器分析网页

Python爬虫项目分享二:《爬取周杰伦的歌曲评论》_第1张图片

#歌曲评价地址
https://y.qq.com/n/yqq/song/001zMQr71F1Qo8.html#comment_box
#先把Network面板清空,再点击一下评论翻页,看看有没有多出来的新XHR,多出来的那一个,就应该是和评论相关的。

Python爬虫项目分享二:《爬取周杰伦的歌曲评论》_第2张图片

#点开这个请求的Preview,能够在['comment']['commentlist']里找到评论列表。
#列表的每一个元素都是字典,字典里键rootcommentcontent对应的值,就是我们要找的评论。

Python爬虫项目分享二:《爬取周杰伦的歌曲评论》_第3张图片

#模拟这个请求,解析json,提取想要的内容。
#点击Headers,在General里看链接,在Query String Parametres里看参数,多翻几页评论列表,总结参数的规律。

Python爬虫项目分享二:《爬取周杰伦的歌曲评论》_第4张图片

#在这里你会遇到一个难点,XHR有两个参数在不断变化:一个是pagenum,一个lasthotcommentid。其中pagenum好理解,就是页码,但是lastcommentid是什么?
#我们来阅读这个英文lasthotcommentid,它的含义是:上一条热评的评论id。
#基于此,我们可以做一个猜想:每一页的请求,参数lasthotcommentid的值,是上一页的最后一条评论,所对应的id。

代码实现

#!/usr/bin/python3

import requests

# 引用requests模块
url = 'https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg'
commentid = ''
# 设置一个初始commentid
# requests模块里的requests.get()提供了一个参数叫params,可以让我们用字典的形式,把参数传进去。
for x in range(5):
    params = {
        'g_tk': '5381',
        'loginUin': '0',
        'hostUin': '0',
        'format': 'json',
        'inCharset': 'utf8',
        'outCharset': 'GB2312',
        'notice': '0',
        'platform': 'yqq.json',
        'needNewCode': '0',
        'cid': '205360772',
        'reqtype': '2',
        'biztype': '1',
        'topid': '102065756',
        'cmd': '8',
        'needcommentcrit': '0',
        'pagenum': str(x),
        'pagesize': '25',
        'lasthotcommentid': commentid,
        'domain': 'qq.com',
        'ct': '24',
        'cv': '101010  '
    }
# 将参数封装为字典,其中pagenum和lastcommentid是特殊的变量
res_comment = requests.get(url, params=params)

# 调用get方法,下载评论列表
json_comment = res_comment.json()

# 使用json()方法,将response对象,转为列表/字典
list_comment = json_comment['comment']['commentlist']

# 一层一层地取字典,获取评论列表
for comment in list_comment:

# list_comment是一个列表,comment是它里面的元素
    print(comment['rootcommentcontent'])
# 输出评论
commentid = list_comment[24]['commentid']
# 将最后一个评论的id赋值给comment,准备开始下一次循环

>>>>>>>>>>>>>>>>>>>>>>>>

枕着我爱的这个人唱的歌睡了午觉 醒来心情格外晴朗
超好听
如果有一首詩歌,能夠勾引起你曾經的記憶,那麽會有七里香吧?\n我猜可能是因為那年夏天的雨下的太大,然濕了你給她的那朵紫羅蘭,但是無法再換一朵。只能眼睜睜看她對你尷尬的笑一笑,踏著腳踏車遠去。\n潔白的連衣裙在她的身邊盪漾\n你沒有說regard,哈哈只是躲在六平方米的閣樓上,彈著吉他,猜測她對你有多麼喜歡

然後又出現了七里香,才將你無法言語的情緒告訴了她.... 
七月过了,十一月还没来。
我们只有这几十秒的缘分[em]e400837[/em]
回忆杀,青春夏天的记忆
早安
晚安!\n睡前必听一次。
在那个只有随身听的年代,每一盘杰伦的专辑都会买,买来全班同学传着听,后来有了MP3.每一首周杰伦的歌都会下载,那些年,我们已经习惯了等待周杰伦每年一张专辑
好听,好听,太好听了
我接着写,把永远爱你写进诗的结尾,你是我唯一想要的了解\n               ——《七里香》周杰伦
我覺得中間那段很悲情

你可能感兴趣的:(python爬虫)