Maison > Article > développement back-end > Prendre l'exemple de la récupération des commentaires Taobao pour expliquer comment Python analyse dynamiquement les données générées par ajax (classique)
Lors de l'apprentissage de Python, vous rencontrerez certainement la situation où le contenu du site Web est constitué de données JSON générées via une requête dynamique Ajax et une actualisation asynchrone, et la méthode précédente d'exploration du contenu Web statique via Python n'est pas possible, donc cet article décrira comment explorer les données générées dynamiquement par ajax en python.
Lors de l'apprentissage de Python, vous rencontrerez certainement la situation où le contenu du site Web est constitué de données JSON générées via une requête dynamique Ajax et une actualisation asynchrone, et la méthode précédente d'exploration du contenu Web statique via Python n'est donc pas possible. L'article décrira comment analyser les données générées dynamiquement par ajax en python.
Quant à savoir comment lire du contenu Web statique, ceux qui sont intéressés peuvent consulter le contenu de cet article.
Ici, nous prenons comme exemple l'exploration des commentaires Taobao pour expliquer comment procéder.
Ceci est principalement divisé en quatre étapes :
Lors de la réception des avis Taobao, ajax demande le lien (url)
2. Récupérez les données json renvoyées par la requête ajax
3. Utilisez python pour analyser les données json
Quatre Enregistrez les résultats analysés
Étape 1 :
Lorsque je reçois des commentaires Taobao, ajax Request link (url) Ici, j'utilise le navigateur Chrome pour terminer. Ouvrez le lien Taobao et recherchez un produit dans le champ de recherche, tel que « chaussures ». Ici, nous sélectionnons le premier produit.
Ensuite, il passe à une nouvelle page Web. Ici, puisque nous devons explorer les avis des utilisateurs, nous cliquons sur Notes accumulées.
Ensuite, nous pouvons voir l'évaluation du produit par l'utilisateur. À ce moment-là, nous faisons un clic droit sur la page Web et sélectionnons l'élément d'évaluation (ou l'ouvrons directement avec F12. ) et sélectionnez Options réseau, comme indiqué sur l'image :
Dans les commentaires des utilisateurs, nous faisons défiler vers le bas et cliquons sur la page suivante ou sur la deuxième page que nous voyons. plusieurs ajouts dynamiques dans l'élément Réseau, nous sélectionnons l'élément commençant par list_detail_rate.htm?itemId=35648967399.
Ensuite, cliquez sur cette option, nous pouvons voir les informations sur le lien dans la zone d'option de droite, nous voulons copier le contenu du lien dans l'URL de la demande.
Nous entrons le lien URL que nous venons d'obtenir dans la barre d'adresse du navigateur. Après l'avoir ouvert, nous constaterons que la page renvoie les données dont nous avons besoin, mais cela semble. très compliqué Parce que ce sont des données json.
Deuxièmement, récupérez les données json renvoyées par la requête ajax
Ensuite, nous devons obtenir les données URL json dans. L'éditeur python que j'utilise est pycharm. Jetons un coup d'œil au code python :
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') import requests url='https://rate.tmall.com/list_detail_rate.htm?itemId=35648967399&spuId=226460655&sellerId=1809124267ℴ=3¤tPage=1&append=0&content=1&tagId=&posi=&picture=&ua=011UW5TcyMNYQwiAiwQRHhBfEF8QXtHcklnMWc%3D%7CUm5OcktyT3ZCf0B9Qn9GeC4%3D%7CU2xMHDJ7G2AHYg8hAS8WKAYmCFQ1Uz9YJlxyJHI%3D%7CVGhXd1llXGVYYVVoV2pVaFFvWGVHe0Z%2FRHFMeUB4QHxCdkh8SXJcCg%3D%3D%7CVWldfS0RMQ47ASEdJwcpSDdNPm4LNBA7RiJLDXIJZBk3YTc%3D%7CVmhIGCUFOBgkGiMXNwswCzALKxcpEikJMwg9HSEfJB8%2FBToPWQ8%3D%7CV29PHzEfP29VbFZ2SnBKdiAAPR0zHT0BOQI8A1UD%7CWGFBET8RMQszDy8QLxUuDjIJNQA1YzU%3D%7CWWBAED4QMAU%2BASEYLBksDDAEOgA1YzU%3D%7CWmJCEjwSMmJXb1d3T3JMc1NmWGJAeFhmW2JCfEZmWGw6GicHKQcnGCUdIBpMGg%3D%3D%7CW2JfYkJ%2FX2BAfEV5WWdfZUV8XGBUdEBgVXVJciQ%3D&isg=82B6A3A1ED52A6996BCA2111C9DAAEE6&_ksTS=1440490222698_2142&callback=jsonp2143' #这里的url比较长 content=requests.get(url).content
imprimer le contenu #Le contenu imprimé est celui sur lequel nous avons précédemment imprimé. la page web Les données json obtenues. Incluez les commentaires des utilisateurs.
Le contenu ici correspond aux données json dont nous avons besoin. L'étape suivante consiste à analyser ces données json.
3 Utilisez Python pour analyser les données JSON
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') import requests import json import re url='https://rate.tmall.com/list_detail_rate.htm?itemId=35648967399&spuId=226460655&sellerId=1809124267ℴ=3¤tPage=1&append=0&content=1&tagId=&posi=&picture=&ua=011UW5TcyMNYQwiAiwQRHhBfEF8QXtHcklnMWc%3D%7CUm5OcktyT3ZCf0B9Qn9GeC4%3D%7CU2xMHDJ7G2AHYg8hAS8WKAYmCFQ1Uz9YJlxyJHI%3D%7CVGhXd1llXGVYYVVoV2pVaFFvWGVHe0Z%2FRHFMeUB4QHxCdkh8SXJcCg%3D%3D%7CVWldfS0RMQ47ASEdJwcpSDdNPm4LNBA7RiJLDXIJZBk3YTc%3D%7CVmhIGCUFOBgkGiMXNwswCzALKxcpEikJMwg9HSEfJB8%2FBToPWQ8%3D%7CV29PHzEfP29VbFZ2SnBKdiAAPR0zHT0BOQI8A1UD%7CWGFBET8RMQszDy8QLxUuDjIJNQA1YzU%3D%7CWWBAED4QMAU%2BASEYLBksDDAEOgA1YzU%3D%7CWmJCEjwSMmJXb1d3T3JMc1NmWGJAeFhmW2JCfEZmWGw6GicHKQcnGCUdIBpMGg%3D%3D%7CW2JfYkJ%2FX2BAfEV5WWdfZUV8XGBUdEBgVXVJciQ%3D&isg=82B6A3A1ED52A6996BCA2111C9DAAEE6&_ksTS=1440490222698_2142&callback=jsonp2143' cont=requests.get(url).content rex=re.compile(r'\w+[(]{1}(.*)[)]{1}') content=rex.findall(cont)[0] con=json.loads(content,"gbk") count=len(con['rateDetail']['rateList']) for i in xrange(count): print con['rateDetail']['rateList'][i]['appendComment']['content']
Analyse :
Ici, vous devez importer le package requis, il s'agit du package requis pour les expressions régulières, et pour analyser les données json, vous devez importer json
cont=requests .get(url).content #Récupérer les données json dans la page Web
rex=re.compile(r'w+[(]{1}(.*)[)]{1}') # Expression régulière pour supprimer la partie redondante des données cont, les données deviennent de vraies données au format json {"a": "b", "c": "d">
con=json.loads (content, "gbk") Utilisez la fonction de chargement de json Convertissez le contenu dans un format de données pouvant être traité par la fonction de bibliothèque json. "gbk" est la méthode d'encodage des données puisque le système win est par défaut gbk
. count=len(con['rateDetail']['rateList'] ) #Obtenir le nombre de commentaires des utilisateurs (cela concerne uniquement la page actuelle)
pour i dans xrange(count):
print con['rateDetail']['rateList'][i] ['appendComment']
# Parcourez les commentaires et les sorties des utilisateurs (vous pouvez également enregistrer les données en fonction de vos besoins, vous pouvez vérifier la quatrième partie)
La difficulté ici est de le trouver dans les données json désordonnées Chemin d'accès aux commentaires des utilisateurs
4. Enregistrez les résultats analysés
Ici, l'utilisateur peut enregistrer les informations de son commentaire localement, par exemple au format CSV.
C’est tout dans cet article, j’espère qu’il vous plaira tous.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!