Maison développement back-end Tutoriel Python Exemple de code d'implémentation du robot d'exploration Python pour prendre des noms

Exemple de code d'implémentation du robot d'exploration Python pour prendre des noms

May 10, 2017 am 11:42 AM
python 爬虫

Tout le monde rencontrera une chose dans sa vie. Ils ne s'en soucient pas avant qu'elle n'apparaisse, mais une fois qu'elle arrive, ils trouvent qu'elle est extrêmement importante et nécessite qu'une décision majeure soit prise dans un court laps de temps. C'est pour vous. Donnez un nom à votre nouveau-né. L'article suivant explique principalement comment utiliser le robot d'exploration Python pour donner un bon nom à votre enfant. Les amis dans le besoin peuvent s'y référer.

Avant-propos

Je crois que tous les parents en ont fait l'expérience, car il faut beaucoup de temps pour choisir un prénom dans les deux semaines qui suivent la naissance de l'enfant (un acte de naissance est obligatoire). Tout le monde est comme moi. Au début, j'étais très confus. Même si je pensais qu'il y avait tellement de caractères chinois, je pouvais simplement choisir n'importe quel caractère pour créer un nom. Mais plus tard, j'ai réalisé que ce n'était vraiment pas une chose fortuite. Peu importe ce que j'y pensais, j'ai trouvé que c'était inapproprié, alors j'ai cherché et lu de la poésie Tang, des paroles de chansons, le Livre des Chansons et même des romans d'arts martiaux. Je réfléchis depuis longtemps et je rencontre souvent les opinions et les objections des membres de ma famille, tels que des problèmes tels que des difficultés à parler et le même accent que le nom des proches. De cette façon, je tombe dans un cycle de répétition. recherches et dénégations. Le cycle devient de plus en plus confus.

Nous sommes donc retournés sur Internet pour rechercher et avons trouvé de nombreux articles sur Internet tels que "Une liste complète de bons prénoms de bébés garçons". Ces articles ont donné des centaines d'articles à la fois. Des milliers de noms sont trop vertigineux pour être utilisés. Il existe de nombreux sites Web ou applications qui testent les noms. Lorsque vous saisissez un nom, vous pouvez obtenir une note de huit ou cinq caractères. Cette fonction est assez efficace et peut être utilisée comme référence. Cependant, nous devons soit saisir un seul nom. par un pour les tests, ou Ces sites Web ou applications ont très peu de noms, soit ne peuvent pas répondre à nos besoins tels que les mots qualificatifs, soit ils commencent à charger, et à la fin nous n'en trouvons aucun utile.

Je voulais donc créer un programme comme celui-ci :

  1. La fonction principale est de fournir une référence pour les noms de lots, qui sont combinés avec le noms de bébé Il est calculé en fonction de la date de naissance et de l'horoscope

  2. Vous pouvez élargir votre bibliothèque de noms Par exemple, si vous trouvez un lot de bons noms dans le Livre des Chansons sur le. Internet et que vous souhaitez voir comment ils sont, vous pouvez les ajouter et les utiliser

  3. Vous pouvez limiter les caractères utilisés dans le nom. Par exemple, certains arbres généalogiques ont des restrictions si vous le souhaitez. sont actuellement dans la génération avec le caractère "国", le nom doit avoir le caractère "国"

  4. La liste de noms peut recevoir des scores, afin qu'après inversion, vous puissiez regarder aux noms des scores élevés aux scores faibles

De cette façon, vous pouvez en obtenir une copie. Il existe une liste de noms qui correspondent à la date de naissance de votre enfant, à votre arbre généalogique restrictions et vos préférences, et la liste a donné des scores pour référence. Sur cette base, nous pouvons les comprendre un par un pour trouver le nom que nous aimons. Bien sûr, si vous avez de nouvelles idées, vous pouvez à tout moment ajouter de nouveaux noms au vocabulaire et recalculer.

Structure du code du programme

Introduction au code :

  • /chinese-name-score Répertoire racine du code

  • /chinese-name-score/main Répertoire du code

  • /chinese-name-score/main/dicts Répertoire du fichier de dictionnaire

  • /chinese-name-score/main/dicts/names_boys_double.txt Fichier de dictionnaire, noms à deux lettres pour les garçons

  • /chinese-name-score/main/dicts/names_boys_single.txt Fichier de dictionnaire, noms à une seule lettre pour les garçons

  • /chinese- name-score/ main/dicts/names_girls_single.txt Fichier de dictionnaire, noms à deux lettres pour les filles

  • /chinese-name-score/main/dicts/names_grils_double.txt Fichier de dictionnaire, un -noms de lettres pour les filles

  • /chinese-name-score/main/outputs Répertoire de données de sortie

  • /chinese-name-score/main /outputs/names_girls_source_wxy.txt Exemples de fichiers de sortie

  • /chinese-name-score/main/scripts Quelques scripts pour le prétraitement des fichiers de dictionnaire

  • / Chinese-name -score/main/scripts/unique_file_lines.py Définit le fichier de dictionnaire pour supprimer la duplication et les lignes vides des noms dans le dictionnaire

  • /chinese -name -score/main/sys_config.py La configuration système du programme, y compris l'URL cible analysée et le chemin du fichier de dictionnaire

  • /chinese-name-score/main/user_config.py La configuration utilisateur du programme, y compris l'année, le mois, le jour, l'heure, le sexe et d'autres paramètres du bébé

  • /chinese-name-score/main/get_name_score.py Entrée en cours d'exécution du programme

Comment utiliser le code :

  1. S'il n'y a pas de qualificatifs, recherchez les fichiers du dictionnaire names_boys_double. txt et names_grils_double.txt, vous pouvez ajouter les vôtres ici. Pour certaines listes de noms trouvées, divisez-les simplement par ligne et ajoutez-les à la fin

  2. S'il y a des mots qualifiés, recherchez le ; fichiers de dictionnaire Names_boys_single.txt et Names_girls_single.txt, et ajoutez vos favoris ici. Une seule liste de mots peut être divisée par ligne et ajoutée à la fin

  3. Ouvrez user_config.py et configurez-la ; . Voir la section suivante pour les éléments de configuration

  4. Exécutez le script get_name_score.py

    .
  5. Dans le répertoire des sorties, affichez vos propres fichiers de sortie, qui peuvent être copiés dans Excel pour le tri et d'autres opérations

programme L'entrée de configuration du programme

est configurée comme suit :

# coding:GB18030
 
"""
在这里写好配置
"""
 
setting = {}
 
# 限定字,如果配置了该值,则会取用单字字典,否则取用多字字典
setting["limit_world"] = "国"
# 姓
setting["name_prefix"] = "李"
# 性别,取值为 男 或者 女
setting["sex"] = "男"
# 省份
setting["area_province"] = "北京"
# 城市
setting["area_region"] = "海淀"
# 出生的公历年份
setting['year'] = "2017"
# 出生的公历月份
setting['month'] = "1"
# 出生的公历日子
setting['day'] = "11"
# 出生的公历小时
setting['hour'] = "11"
# 出生的公历分钟
setting['minute'] = "11"
# 结果产出文件名称
setting['output_fname'] = "names_girls_source_xxx.txt"
Copier après la connexion

Selon l'élément de configuration setting[“limit_world”] , le système décide automatiquement d'utiliser un caractère unique dictionnaire ou un dictionnaire à plusieurs caractères :

  1. Si cet élément est défini, par exemple, s'il est égal à "国", alors le programme combinera tous les mots en noms pour le calcul . Par exemple, les noms Guohao et Haoguo seront calculés

  2. Si vous ne définissez pas cet élément et conservez la chaîne vide, le programme lira uniquement. le dictionnaire de mots doubles de *_double.txt

Principe du programme

Il s'agit d'un simple robot d'exploration. Vous pouvez ouvrir le site Web life.httpcn.com/xingming.asp pour le visualiser. Il s'agit d'un formulaire POST. Remplissez les paramètres requis et cliquez sur Soumettre. Une page de résultats s'ouvrira. score et le score de cinq images.

Si vous souhaitez obtenir des scores, vous devez faire deux choses. L'une consiste à soumettre automatiquement le formulaire au robot et à obtenir la page de résultats ; l'autre consiste à extraire les scores de la page de résultats ; >

Pour la première chose, c'est très simple, urllib2 peut l'implémenter (le code est dans /chinese-name-score/main/get_name_score.py) :

 post_data = urllib.urlencode(params)
 req = urllib2.urlopen(sys_config.REQUEST_URL, post_data)
 content = req.read()
Copier après la connexion
Les paramètres ici sont un paramètre dict. En utilisant cette méthode, le POST avec les données est effectué Soumettre, puis obtenir les données de résultat du contenu. Les paramètres de

params sont définis comme suit :

 params = {}
 
 # 日期类型,0表示公历,1表示农历
 params['data_type'] = "0"
 params['year'] = "%s" % str(user_config.setting["year"])
 params['month'] = "%s" % str(user_config.setting["month"])
 params['day'] = "%s" % str(user_config.setting["day"])
 params['hour'] = "%s" % str(user_config.setting["hour"])
 params['minute'] = "%s" % str(user_config.setting["minute"])
 params['pid'] = "%s" % str(user_config.setting["area_province"])
 params['cid'] = "%s" % str(user_config.setting["area_region"])
 # 喜用五行,0表示自动分析,1表示自定喜用神
 params['wxxy'] = "0"
 params['xing'] = "%s" % (user_config.setting["name_prefix"])
 params['ming'] = name_postfix
 # 表示女,1表示男
 if user_config.setting["sex"] == "男":
  params['sex'] = "1"
 else:
  params['sex'] = "0"
  
 params['act'] = "submit"
 params['isbz'] = "1"
Copier après la connexion
La deuxième chose est d'extraire les scores requis de la page Web. Nous pouvons utiliser BeautifulSoup4 pour y parvenir, et sa syntaxe est la suivante. aussi très simple :

 soup = BeautifulSoup(content, 'html.parser', from_encoding="GB18030")
 full_name = get_full_name(name_postfix)
 
 # print soup.find(string=re.compile(u"姓名五格评分"))
 for node in soup.find_all("p", class_="chaxun_b"):
  node_cont = node.get_text()
  if u'姓名五格评分' in node_cont:
   name_wuge = node.find(string=re.compile(u"姓名五格评分"))
   result_data['wuge_score'] = name_wuge.next_sibling.b.get_text()
  
  if u'姓名八字评分' in node_cont:
   name_wuge = node.find(string=re.compile(u"姓名八字评分"))
   result_data['bazi_score'] = name_wuge.next_sibling.b.get_text()
Copier après la connexion
Grâce à cette méthode, le HTML peut être analysé et les partitions de huit caractères et cinq grilles peuvent être extraites.

Exemples de résultats en cours d'exécution

1/1287 李国锦 姓名八字评分=61.5 姓名五格评分=78.6 总分=140.1
2/1287 李国铁 姓名八字评分=61 姓名五格评分=89.7 总分=150.7
3/1287 李国晶 姓名八字评分=21 姓名五格评分=81.6 总分=102.6
4/1287 李鸣国 姓名八字评分=21 姓名五格评分=90.3 总分=111.3
5/1287 李柔国 姓名八字评分=64 姓名五格评分=78.3 总分=142.3
6/1287 李国经 姓名八字评分=21 姓名五格评分=89.8 总分=110.8
7/1287 李国蒂 姓名八字评分=22 姓名五格评分=87.2 总分=109.2
8/1287 李国登 姓名八字评分=21 姓名五格评分=81.6 总分=102.6
9/1287 李略国 姓名八字评分=21 姓名五格评分=83.7 总分=104.7
10/1287 李国添 姓名八字评分=21 姓名五格评分=81.6 总分=102.6
11/1287 李国天 姓名八字评分=22 姓名五格评分=83.7 总分=105.7
12/1287 李国田 姓名八字评分=22 姓名五格评分=93.7 总分=115.7
Copier après la connexion
Avec ces scores, on peut les trier, ce qui est une référence très pratique.

Rappel amical

  1. Le score est lié à de nombreux facteurs, comme l'heure de naissance, les personnages limités, les coups des qualifiés caractères, etc. Ces conditions Il a été décidé que certains noms n'auraient pas de scores élevés, alors ne soyez pas affecté par cela, trouvez simplement ceux avec des scores relatifs élevés

  2. Actuellement ; le programme ne peut explorer que le contenu d'un seul site Web et l'adresse est http://life.httpcn.com/xingming.asp

  3. Cette liste est à titre de référence uniquement. certains articles. Il y a beaucoup de célébrités et de personnes formidables dans l'histoire. Leurs noms ont des notes très faibles mais ils ont tous fait de grandes réalisations, le nom a une certaine influence, mais parfois les mots accrocheurs sont les meilleurs

  4. Après avoir sélectionné le nom dans cette liste, vous pouvez le vérifier sur Baidu, Renren et d'autres endroits Juste au cas où certaines personnes négatives auraient le même nom, ou s'il y aurait trop de personnes avec ce nom
  5. La partition à huit caractères est héritée de la Chine, et la partition à cinq images a été inventée par les Japonais dans les temps modernes. Parfois, vous pouvez également essayer la méthode de dénomination du zodiaque occidental et, étrangement, les horoscopes et cinq. les scores sont très différents selon les sites Web, ce qui prouve en outre que cette chose est à titre de référence uniquement
  6. Le code de cet article a été
téléchargé

sur github Résumé

[Recommandations associées]

Tutoriel vidéo gratuit Python

2. Tutoriel vidéo Python rencontre la collecte de données

3 Manuel d'apprentissage Python

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Python: jeux, GUIS, et plus Python: jeux, GUIS, et plus Apr 13, 2025 am 12:14 AM

Python excelle dans les jeux et le développement de l'interface graphique. 1) Le développement de jeux utilise Pygame, fournissant des fonctions de dessin, audio et d'autres fonctions, qui conviennent à la création de jeux 2D. 2) Le développement de l'interface graphique peut choisir Tkinter ou Pyqt. Tkinter est simple et facile à utiliser, PYQT a des fonctions riches et convient au développement professionnel.

PHP et Python: comparaison de deux langages de programmation populaires PHP et Python: comparaison de deux langages de programmation populaires Apr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

Comment Debian Readdir s'intègre à d'autres outils Comment Debian Readdir s'intègre à d'autres outils Apr 13, 2025 am 09:42 AM

La fonction ReadDir dans le système Debian est un appel système utilisé pour lire le contenu des répertoires et est souvent utilisé dans la programmation C. Cet article expliquera comment intégrer ReadDir avec d'autres outils pour améliorer sa fonctionnalité. Méthode 1: combinant d'abord le programme de langue C et le pipeline, écrivez un programme C pour appeler la fonction readdir et sortir le résultat: # include # include # include # includeIntmain (intargc, char * argv []) {dir * dir; structDirent * entrée; if (argc! = 2) {

Python et temps: tirer le meilleur parti de votre temps d'étude Python et temps: tirer le meilleur parti de votre temps d'étude Apr 14, 2025 am 12:02 AM

Pour maximiser l'efficacité de l'apprentissage de Python dans un temps limité, vous pouvez utiliser les modules DateTime, Time et Schedule de Python. 1. Le module DateTime est utilisé pour enregistrer et planifier le temps d'apprentissage. 2. Le module de temps aide à définir l'étude et le temps de repos. 3. Le module de planification organise automatiquement des tâches d'apprentissage hebdomadaires.

Certificat NGINX SSL Mise à jour du tutoriel Debian Certificat NGINX SSL Mise à jour du tutoriel Debian Apr 13, 2025 am 07:21 AM

Cet article vous guidera sur la façon de mettre à jour votre certificat NGINXSSL sur votre système Debian. Étape 1: Installez d'abord CERTBOT, assurez-vous que votre système a des packages CERTBOT et Python3-CERTBOT-NGINX installés. Si ce n'est pas installé, veuillez exécuter la commande suivante: Sudoapt-getUpDaSuDoapt-GetInstallCertBotpyThon3-Certerbot-Nginx Étape 2: Obtenez et configurez le certificat Utilisez la commande Certbot pour obtenir le certificat LETSCRYPT et configure

Comment configurer le serveur HTTPS dans Debian OpenSSL Comment configurer le serveur HTTPS dans Debian OpenSSL Apr 13, 2025 am 11:03 AM

La configuration d'un serveur HTTPS sur un système Debian implique plusieurs étapes, notamment l'installation du logiciel nécessaire, la génération d'un certificat SSL et la configuration d'un serveur Web (tel qu'Apache ou Nginx) pour utiliser un certificat SSL. Voici un guide de base, en supposant que vous utilisez un serveur Apacheweb. 1. Installez d'abord le logiciel nécessaire, assurez-vous que votre système est à jour et installez Apache et OpenSSL: SudoaptupDaSuDoaptupgradeSudoaptinsta

Guide de développement du plug-in de Gitlab sur Debian Guide de développement du plug-in de Gitlab sur Debian Apr 13, 2025 am 08:24 AM

Développer un plugin Gitlab sur Debian nécessite des étapes et des connaissances spécifiques. Voici un guide de base pour vous aider à démarrer avec ce processus. Installation de GitLab Tout d'abord, vous devez installer GitLab sur votre système Debian. Vous pouvez vous référer au manuel d'installation officiel de Gitlab. Obtenez un jeton d'accès API avant d'effectuer l'intégration de l'API, vous devez d'abord obtenir le jeton d'accès API de GitLab. Ouvrez le tableau de bord GitLab, recherchez l'option "AccessTokens" dans les paramètres utilisateur et générez un nouveau jeton d'accès. Sera généré

Quel service est Apache Quel service est Apache Apr 13, 2025 pm 12:06 PM

Apache est le héros derrière Internet. Ce n'est pas seulement un serveur Web, mais aussi une plate-forme puissante qui prend en charge un trafic énorme et fournit un contenu dynamique. Il offre une flexibilité extrêmement élevée grâce à une conception modulaire, permettant l'expansion de diverses fonctions au besoin. Cependant, la modularité présente également des défis de configuration et de performance qui nécessitent une gestion minutieuse. Apache convient aux scénarios de serveur qui nécessitent des besoins complexes hautement personnalisables.

See all articles