Maison >développement back-end >Tutoriel Python >Comment explorer le contenu en js en utilisant python

Comment explorer le contenu en js en utilisant python

零到壹度
零到壹度original
2018-04-10 09:54:129417parcourir


Le contenu de cet article est de partager avec vous comment utiliser Python pour explorer le contenu en js. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. 🎜 >

1. Lors de l'écriture d'un logiciel d'exploration pour obtenir le contenu requis, vous pouvez constater que le contenu requis est ajouté par javascript et est vide lors de la récupération. Par exemple, lorsque nous obtenons Sina. Actualités Le nombre de commentaires ne peut pas être obtenu par les méthodes ordinaires. 🎜>Le résultat obtenu à ce moment est vide car le contenu est stocké dans un fichier js

<.>Nous devons donc trouver le js qui stocke le contenu du commentaire. Nous avons constaté qu'il est stocké dans js

import requests
from bs4 import BeautifulSoup

res = requests.get(&#39;http://news.sina.com.cn/c/nd/2017-06-12/doc-ifyfzhac1650783.shtml&#39;)
res.encoding = &#39;utf-8&#39;
soup = BeautifulSoup(res.text,&#39;html.parser&#39;)
#取评论数
commentCount = soup.select_one(&#39;#commentCount1&#39;)
print(commentCount.text)
Mettez le correspondant. contenu dans la visionneuse de données json et nous avons constaté que le nombre total de commentaires et le contenu des commentaires sont tous deux Dans ce fichier js, stockez


que l'on peut voir dans l'entête du message Le chemin d'accès et la méthode de requête du fichier js

Exemple de code


Remarque : Voici une explication de la raison pour laquelle var data= doit être supprimé car le préfixe de chaîne inclut var data= lors de son obtention, ce qui est le cas n'est pas conforme au format de données json, il doit donc être supprimé du contenu de la requête lors de la conversion

Pourquoi utiliser jd['result '][

'count'
import json
comments = requests.get(&#39;http://comment5.news.sina.com.cn/page/info?version=1&format=js&channel=gn&newsid=comos-fyfzhac1650783&#39;)
comments.encoding = &#39;utf-8&#39;
print(comments)
jd = json.loads(comments.text.strip(&#39;var data=&#39;)) #移除改var data=将其变为json数据
print(jd[&#39;result&#39;][&#39;count&#39;][&#39;total&#39;])
][

'total' lors de l'obtention du nombre total de commentaires
]

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Guide du débutant d'AnacondaArticle suivant:Guide du débutant d'Anaconda