Heim  >  Artikel  >  Backend-Entwicklung  >  Crawlen von NetEase Cloud-Musikrezensionen

Crawlen von NetEase Cloud-Musikrezensionen

jacklove
jackloveOriginal
2018-06-11 23:42:122711Durchsuche

# coding=gbk
import requests
import json
c='网易云爬虫实战一'
print(c)
music_url = 'https://music.163.com/#/song?id=28815250'
id = music_url.split('=')[1]
# print(id)
url = 'https://music.163.com/weapi/v1/resource/comments/R_SO_4_%s?csrf_token=7e19029fe28aa3e09cfe87e89d2e4eeb' %(id)


headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
    'Referer': 'https://music.163.com/song?id=%s' %(id),
    'Origin': 'https://music.163.com',
    }


formdata = {
    'params': 'AoF/ZXuccqvtaCMCPHecFGVPfrbtDj4JFPJsaZ3tYn9J+r0NcnKPhZdVECDz/jM+1CpA+ByvAO2J9d44B/MG97WhjmxWkfo4Tm++AfyBgK11NnSbKsuQ5bxJR6yE0MyFhU8sPq7wb9DiUPFKs2ulw0GxwU/il1NS/eLrq+bbYikK/cyne90S/yGs6ldxpbcNd1yQTuOL176aBZXTJEcGkfbxY+mLKCwScAcCK1s3STo=',
    'encSecKey': '365b4c31a9c7e2ddc002e9c42942281d7e450e5048b57992146633181efe83c1e26acbc8d84b988d746370d788b6ae087547bace402565cca3ad59ccccf7566b07d364aa1d5b2bbe8ccf2bc33e0f03182206e29c66ae4ad6c18cb032d23f1793420ceda05e796401f170dbdb825c20356d27f07870598b2798f8d344807ad6f2',
    }


response = requests.post(url, headers = headers, data = formdata)
messages = json.loads(response.text)


data_list=[]
data={}
for message in messages['hotComments']:
	data['nickname']=message['user']['nickname']
	data['content']=message['content']
	data_list.append(data)
	data={}
#print(data_list)
for i in data_list:
	c = '    '+i['nickname']+':'+i['content']
	print('\n\n'+c.replace('\n',''))


Zusammenfassung:

1. Das „#“ im ersten line programming=gbk“ bedeutet, dass Textzeichenfolgen im Texteditor eingegeben werden können.

2. Die Funktion split() in „id = music_url.split('=')[1]“ bedeutet, Elemente zu gruppieren, in diesem Beispiel ist es „https://music.163“. .com /#/song?id=“, „28815250

3. Der vom Anforderungsmodul erhaltene HTML-Text muss in Python konvertiert werden, das mit dem JSON lesbar ist. Loads()-Methodentext, andernfalls wird ein Fehler gemeldet. Dies ist im Jupiter-Notebook nicht der Fall.

4. Die Funktion replace() kann Elemente aus der Zeichenfolge entfernen. In diesem Beispiel wird das Newline-Zeichen leer.

Das endgültige Anzeigeergebnis ist wie folgt:


Dieser Artikel stellt den relevanten Inhalt der NetEase Cloud-Musikrezension vor Crawling, bitte folgen Sie der chinesischen PHP-Website.

Verwandte Empfehlungen:

Einfache PHP+MySQL-Paging-Klasse

Zwei Baumarray-Konstruktoren ohne Rekursion

HTML in Excel konvertieren und Druck- und Downloadfunktionen realisieren

Das obige ist der detaillierte Inhalt vonCrawlen von NetEase Cloud-Musikrezensionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn