Version simple de la recherche de site
Basé sur le moteur de recherche d'actualités du campus
- Idée d'implémentation: ramper toutes les nouvelles du réseau du campus, la stocker dans la base de données MySQL, puis diviser les titres dans la base de données, puis transformer les résultats de la segmentation des mots en un tableau d'index. Entrez un contenu de requête, segmentez le contenu de requête, faites correspondre la liste de segmentation des mots dans la base de données, mappez l'URL correspondante, puis renvoyez le résultat.
Environnement de développement
Bibliothèque de dépendances
- pymysql: interface entre python et mysql
- Jieba: bibliothèque Python pour le participe de mots
Architecture globale
Certains Crawlers utilisent le cadre de scracy pour explorer le réseau d'actualités de l'Université d'ingénierie et de technologie de Liaoning. Description des principales parties du cadre de scracy:
- Fichier Intuspider.py: le processus d'extraction principale des informations sur la page Web, en utilisant des appels de boucle imbriqués, en utilisant des algorithmes en profondeur-première pour passer des appels récursifs, en analysant toutes les pages HTML de l'Université de liaon, en extraction des informations requises (Titre, URL) et en les enregistrant à l'objet de l'élément. La méthode d'analyse utilisée par les robots est xpath
- items.py définit l'objet à ramper.
- Pipeline.py stocke les objets enregistrés dans la base de données MySQL via l'interface MySQL. Les autres fichiers sont des fichiers de configuration, et il n'y a presque aucune modification, et l'emplacement des modifications a été commenté. La partie du robot se termine ici.
L'idée globale des moteurs de recherche: participez les titres stockés dans la base de données et établissez un index de mots clés. Deuxièmement, sur la base de la fréquence des mots clés, un tableau d'index des mots clés et des occurrences est établi. Description du document principal:
- Intu.py: création de table de base de données, prendre les données rampées par le robot, effectuer une segmentation des mots et les stocker respectivement dans les tables avant et arrière respectivement.
- Forward.py: Table vers l'avant, définissez le composant de classe
forwardIndexTableItem , spécifiez le contenu du tableau dans le tableau et dans la classe de table avant forwardIndexTable , le participe de titre est effectué et stocké dans la table de base de données. - Lexique: segmentation des mots, définir l'opération: obtenir son identifiant à travers des mots, obtenir des mots via ID, établir la liste de segmentation des mots et charger la liste de segmentation des mots;
- Backwardlist: Tableau arrière, traitement des données dans la table avant.
- LIGNE SENGINE: Classe de moteur de recherche, exécuter ce fichier directement, vous pouvez retourner le titre et l'URL correspondant en interrogeant les mots que vous avez entrés. Le noyau consiste à segmenter le contenu d'entrée, puis à trier le titre correspondant en fonction du mot-clé, puis à imprimer les 10 premières lignes en fonction du nombre de mots clés Hit.
Notes et lacunes:
- Tout d'abord, le Crawler est statique. S'il y a des titres en double dans la base de données, l'insertion des données échouera. Le tableau doit être effacé et recruté.
- Le contenu de la base de données est fixé.
- Le taux de succès de la recherche est lié à la précision du participe du bégaiement. Lorsque vous rampez, la disposition de la page Web est très claire, et les nouvelles que j'ai rampées ne sont pas dupliquées.
- À l'avenir, vous pouvez ajouter une page Web, rechercher sur le site Web et créer une interface Web.
- Les robots et les recherches sont indépendants et d'autres réseaux d'informations peuvent également être rampés, il suffit de avoir besoin de la partie du robot.
Comment utiliser
- Préparation de l'environnement de dépendance: Environnement Python3, framework de scroty, installation PymySQL, installation de bibliothèque de mots Jieba, installation MySQL, base de données mytable de l'establishment MySQL et table de données intu.
- Premier clone Git au répertoire spécifié
- Ouvrez la console sous Windows, entrez dans le dossier correspondant et entrez dans
scrapy crawl Intu - Attendez le résultat rampant et le rampage est terminé.
- Exécutez le fichier SeachEngine.py et entrez le contenu texte que vous demandez