Zhihu est une communauté de partage de connaissances très populaire. De nombreux utilisateurs ont contribué à un grand nombre de questions et réponses de haute qualité. Pour les personnes qui étudient et travaillent, ce contenu est très utile pour résoudre des problèmes et élargir leurs horizons. Si vous souhaitez organiser et utiliser ce contenu, vous devez utiliser des scrapers pour obtenir des données pertinentes. Cet article explique comment utiliser PHP pour écrire un programme permettant d'explorer les questions et réponses de Zhihu.
Titre de la question
Description de la question
Le nombre de followers, de vues et de réponses à la question
Le libellé de la question
Questions connexes
Il y a une question très évidente sur Zhihu La particularité est que chaque question possède une URL unique. Nous pouvons donc obtenir des informations sur le problème en construisant une URL et en envoyant une requête HTTP.
Ce qui suit est une démonstration de code PHP :
(.*?)/', $html, $match); $data['title'] = $match[1]; preg_match('/(.*?)/', $html, $match); $data['description'] = $match[1]; preg_match('/(.*?)关注者/', $html, $match); $data['followers'] = $match[1]; preg_match('/(.*?)浏览/', $html, $match); $data['views'] = $match[1]; preg_match('/(.*?)回答/', $html, $match); $data['answers'] = $match[1]; preg_match_all('/(.*?)/', $html, $matches); $data['tags'] = implode(',', $matches[2]); preg_match_all('/(.*?)/', $html, $matches); $data['related_questions'] = array_combine($matches[1], $matches[2]); echo json_encode($data, JSON_UNESCAPED_UNICODE);
Les expressions régulières PHP sont utilisées ici pour faire correspondre les informations requises dans le texte HTML. Bien que cette méthode dépende de la structure de la page HTML, elle peut normalement capturer les données requises dans la plupart des cas. On peut voir que grâce à un code simple, nous pouvons obtenir diverses informations sur ce problème.
L'auteur de la réponse
Le contenu de la réponse
Le nombre de likes et de commentaires pour la réponse
Pour chaque réponse, nous pouvons également construire une URL Et envoyez une requête HTTP pour obtenir ses informations associées.
Voici une démonstration de code PHP :
/', $html, $match); $data['author'] = $match[1]; preg_match('/(.*?)/', $html, $match); $data['content'] = $match[1]; preg_match('/
De même, nous avons utilisé les expressions régulières de PHP pour faire correspondre les informations requises dans le texte HTML. Il convient de noter que pour obtenir le contenu de la réponse, il faut utiliser ztext au lieu de la classe AnswerItem-content. En effet, Zhihu a modifié les noms des classes CSS pertinentes après la mise à jour.
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!