爬虫案例:爬取网易云热门评论

对网易使用普通的办法是不行的。。因为那些热门评论都在别的源文件中,在网页的源代码里是找不到的

所以我们要在加载的源文件里面找到热门评论的文件。。。。。。

方法就是:在netwoek这个控制面板里,减慢加载网页,当评论加载出来时停止,这时加载的文件里就有我们要的热评了。
在这里插入图片描述
然后在文件中翻一翻就找到了。。。在 R_SO_4。。。。的文件中
这是一个post 请求,也就是说我们要给服务器一些数据才行,就是里面的params和 encSecKey。。复制下来发个服务器就好

import requests
import json
import re

def get_res(url):
    proxy = {'http':'175.42.158.68:9999'}   # 最好使用代理,万一网易把你IP干掉了,,,,
    
    # 请求头最好多复制一些,尤其时 referer,这个判断请求从哪来的。    
    headers={'referer': 'https://music.163.com/','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}  # 
    data = {'params': '01pI79cCuSkgm0oBZNONwkka7QmoL8K/c/42xxnWbCpjYXQxggDkkCjq/X5OdzlQBGpbp5XJZenZ068IAnNHUCudfP7OD2ZjYfSgOStX/zRD/xwOFrrdChkCjg4PIK+D9lOzlNflIER6HlapB3RGNryfkWLRtAoYru2Q6cBJdlKjjYqK86haurxNLdlEGng+'
,'encSecKey': '441d8c1603658f2331739fc391abcd6eb27c938108adf1589b443d8549cb0c8f589297d022434c266adabf1b3bcb48b4e9aaaf44eefd2dc53ae40ccc2605c2fdeea94e80e310784edfac4fd3e151d8d5993640fd595e03991665c4b0ebb0c89fc7f11f12654b5718e3560dfc44e13600651112308f23791874a69d0c62f0e883'}    
    
    # 这个url 是在我们发现热评的文件里的 url ,虽然打开这个网站是空白的
    name_id = url.split('=')[1]
    target_url = 'https://music.163.com/api/v1/resource/comments/R_SO_4_{}?csrf_token='.format(name_id)
    res = requests.post(target_url,headers = headers,data=data,proxies=proxy)
    return res

def get_data(res):
    comments_json = json.loads(res.text)   # 得到的是json 形式的数据
    hot_comments = comments_json['hotComments']
    with open('hotcomments.txt','w',encoding='utf-8') as f:
        for each in hot_comments:
            f.write(each['user']['nickname']+':\n\n')
            f.write(each['content']+'\n')
            f.write('------------------\n')
    
def main():
    url = input('输入链接:')
    res = get_res(url)
    get_data(res)

if __name__ == '__main__':
    main()
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值