鱼C论坛

 找回密码
 立即注册
查看: 1228|回复: 2

[已解决]爬虫代码问题求解

[复制链接]
发表于 2022-4-6 15:25:19 | 显示全部楼层 |阅读模式
60鱼币
https://music.163.com/#/song?id=4466775 中的热门评论,为什么一直报错,求解

代码:

import requests
import json

def get_hot_comments(res):
    comments_json = json.loads(res.text)
    hot_comments = comments_json['hotComments']
    with open('hot_comments.txt', 'w', encoding='utf-8') as file:
        for each in hot_comments:
            file.write(each['user']['nickname'] + ':\n\n')
            file.write(each['content'] + '\n')
            file.write("---------------------------------------\n")
            
def get_url(taget_url):
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36',
               'referer':'https: // music.163.com /'
            }
    params = 'iT + k0JgfeBhKdvg6o9HwHu8QJZrysl20hnMd3b1UtVmkQDMEHdHsCVlGsfery224wRkqMvXWDRXdpKQ5uezVYCuXWS4wkxhPG0 + kX244E2x3gGt907KHubwcpRnsPBafdvz36dohIvy1 + pIAC99BD4Zu2Xqi + j6 // 2fSFzG6qpvQRcbPtPZaPNV3IFI7aRokAlGTpo9xU6DE0huk6e0I2 + myCVlVDwotMMia91je + vOZjaKsOgSH7eYITpgGgNVvUVakuJ9JG9eBlu9f / 3153w =='
    encSecKey = 'b199f37ec9e03fc43f0d1043803db2a2e4c6beac3a35d6d5b5cdc7bef8bcf9bb4e515cf0d7abf262ed053473a67e9b151b253e81b091a97bea224c3d978358d9282def16494011b95f39b349042458e70d77e1e232edda1ca0c5878a1bc5d197aed08b59d6b8168d9bdb2c8a67133579d8e50ca1b755fbeba3b4f8507e9b9d54'
    data ={
        'params': params,
        'encSecKey': encSecKey
    }

    res = requests.post(taget_url,headers = headers,data = data)
    return res

def main():
    taget_url = 'https://music.163.com/weapi/comment/resource/comments/get?csrf_token='
    res = get_url(taget_url)
    get_hot_comments(res)

if __name__ == '__main__':
    main()
最佳答案
2022-4-6 15:25:20
  1. import requests
  2. import json

  3. def get_hot_comments(res):
  4.     comments_json = json.loads(res.text)
  5.     hot_comments = comments_json['data']['hotComments']                                                           # 改了这里
  6.     with open('hot_comments.txt', 'w', encoding='utf-8') as file:
  7.         for each in hot_comments:
  8.             file.write(each['user']['nickname'] + ':\n\n')
  9.             file.write(each['content'] + '\n')
  10.             file.write("---------------------------------------\n")
  11.             
  12. def get_url(taget_url):
  13.     headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36',
  14.                'referer':'https: // music.163.com /'
  15.             }
  16.     params = 'iT + k0JgfeBhKdvg6o9HwHu8QJZrysl20hnMd3b1UtVmkQDMEHdHsCVlGsfery224wRkqMvXWDRXdpKQ5uezVYCuXWS4wkxhPG0 + kX244E2x3gGt907KHubwcpRnsPBafdvz36dohIvy1 + pIAC99BD4Zu2Xqi + j6 // 2fSFzG6qpvQRcbPtPZaPNV3IFI7aRokAlGTpo9xU6DE0huk6e0I2 + myCVlVDwotMMia91je + vOZjaKsOgSH7eYITpgGgNVvUVakuJ9JG9eBlu9f / 3153w =='
  17.     encSecKey = 'b199f37ec9e03fc43f0d1043803db2a2e4c6beac3a35d6d5b5cdc7bef8bcf9bb4e515cf0d7abf262ed053473a67e9b151b253e81b091a97bea224c3d978358d9282def16494011b95f39b349042458e70d77e1e232edda1ca0c5878a1bc5d197aed08b59d6b8168d9bdb2c8a67133579d8e50ca1b755fbeba3b4f8507e9b9d54'
  18.     data ={
  19.         'params': params,
  20.         'encSecKey': encSecKey
  21.     }

  22.     res = requests.post(taget_url,headers = headers,data = data)
  23.     return res

  24. def main():
  25.     taget_url = 'https://music.163.com/weapi/comment/resource/comments/get?csrf_token='
  26.     res = get_url(taget_url)
  27.     get_hot_comments(res)

  28. if __name__ == '__main__':
  29.     main()
复制代码

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-6 15:25:20 | 显示全部楼层    本楼为最佳答案   
  1. import requests
  2. import json

  3. def get_hot_comments(res):
  4.     comments_json = json.loads(res.text)
  5.     hot_comments = comments_json['data']['hotComments']                                                           # 改了这里
  6.     with open('hot_comments.txt', 'w', encoding='utf-8') as file:
  7.         for each in hot_comments:
  8.             file.write(each['user']['nickname'] + ':\n\n')
  9.             file.write(each['content'] + '\n')
  10.             file.write("---------------------------------------\n")
  11.             
  12. def get_url(taget_url):
  13.     headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36',
  14.                'referer':'https: // music.163.com /'
  15.             }
  16.     params = 'iT + k0JgfeBhKdvg6o9HwHu8QJZrysl20hnMd3b1UtVmkQDMEHdHsCVlGsfery224wRkqMvXWDRXdpKQ5uezVYCuXWS4wkxhPG0 + kX244E2x3gGt907KHubwcpRnsPBafdvz36dohIvy1 + pIAC99BD4Zu2Xqi + j6 // 2fSFzG6qpvQRcbPtPZaPNV3IFI7aRokAlGTpo9xU6DE0huk6e0I2 + myCVlVDwotMMia91je + vOZjaKsOgSH7eYITpgGgNVvUVakuJ9JG9eBlu9f / 3153w =='
  17.     encSecKey = 'b199f37ec9e03fc43f0d1043803db2a2e4c6beac3a35d6d5b5cdc7bef8bcf9bb4e515cf0d7abf262ed053473a67e9b151b253e81b091a97bea224c3d978358d9282def16494011b95f39b349042458e70d77e1e232edda1ca0c5878a1bc5d197aed08b59d6b8168d9bdb2c8a67133579d8e50ca1b755fbeba3b4f8507e9b9d54'
  18.     data ={
  19.         'params': params,
  20.         'encSecKey': encSecKey
  21.     }

  22.     res = requests.post(taget_url,headers = headers,data = data)
  23.     return res

  24. def main():
  25.     taget_url = 'https://music.163.com/weapi/comment/resource/comments/get?csrf_token='
  26.     res = get_url(taget_url)
  27.     get_hot_comments(res)

  28. if __name__ == '__main__':
  29.     main()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-6 18:07:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 23:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表