誰もが人生で何かに遭遇するでしょう。それが起こる前は気にしませんが、それが起こると、それは非常に重要であり、短期間で大きな決断を下す必要があることがわかります。生まれたばかりの赤ちゃんに名前を付けよう。以下の記事では主にPythonクローラーを使って子供に良い名前を付ける方法を紹介していますので、困っている友達は参考にしてみてください。
はじめに
生まれてから2週間以内に名前を付けなければならないので(出生証明書が必要)、最初はとてもパニックになった人も多いと思います。漢字が多すぎて、どんな文字でも名前にできるような気がしましたが、どう考えてもそんなことはないことが後で分かりました。不適切だと思い、あちこちの辞書を調べたり、ネットで検索したり、唐宋の詩や宋書、さらには武侠小説まで読みました。しかし、長い間考えてきた名前は、しばしば意見や反対に遭遇します。名前の発音が難しい、親戚の名前とアクセントが同じなど、家族の名前について、検索と否定を繰り返し、ますます混乱してしまいます。
そこで、次のようなプログラムを作成したいと思いました:
- 主な機能は、バッチ名の参照を提供することです。これらの名前は、赤ちゃんの生年月日に基づいて計算されます。
- 名前ライブラリを拡張できます。たとえば、インターネット上の歌の本で素敵な名前を見つけました。それらを追加して使用できます。
- たとえば、一部の家系図には制限があり、現在、名前には「国」という単語が含まれている必要があります。そのため、名前リストにはスコアが付けられます。反転後、名前を高スコアから低スコアまで見ることができます
このようにして、お子様の生年月日、家系図の制限、および一致する名前のリストが表示されます。あなたの好みに合わせて、リストにスコアが付けられています。これに基づいて、好みの名前を見つけることができます。もちろん、新しいアイデアがあれば、いつでも新しい名前を語彙に追加して再計算できます。
プログラムのコード構造
コードの紹介:
/chinese-name-scoreコードルートディレクトリ
- /chinese-name-score/
main
コードディレクトリ - /chinese-name-score/main/dicts/names_boys_double.txt 辞書ファイル、男の子の 2 文字の名前
- /chinese-name -score /main/dicts/names_boys_single.txt 辞書ファイル、男の子の 1 文字の名前
- /chinese-name-score/main/dicts/names_girls_single.txt 辞書ファイル、女の子の 2 文字の名前
- /chinese-name-score/main/dicts/names_grils_double.txt 辞書ファイル、女の子の一文字名
- /chinese-name-score/main/outputs 出力データディレクトリ
- /chinese-name-score /main/outputs/names_girls_source_wxy.txt 出力サンプル ファイル
- /chinese-name-score/main/scripts 辞書ファイルを前処理するためのいくつかのスクリプト
- /chinese-name-score/main/scripts/unique_
file
_lines.py 辞書内の重複した名前と空行を削除するための辞書ファイルを設定します -
/chinese-name-score/main/sys_config.py クロール対象の URL と辞書ファイルのパスを含むプログラムのシステム構成
- /chinese-name-score/main/user_config.py 赤ちゃんの年齢、月、日、時間、性別、その他の設定を含むプログラムのユーザー構成
- /chinese-name-score/main/get_name_score .py プログラムの実行入り口
コードの使用方法:
該当する単語がない場合は、辞書ファイル names_boys_double.txt および names_grils_double.txt を検索して、いくつかの名前リストを追加できます。ここで見つけたものを行ごとに分割して最後に追加します;
- 修飾された単語がある場合は、辞書ファイル names_boys_single.txt と names_girls_single.txt を見つけて、事前に好きな単一の単語のリストを追加してください。行ごとに分割して最後に追加します
- user_config.py を開き、設定項目については次のセクションを参照してください
- スクリプト get_name_score.py を実行します。
出力ディレクトリで、出力ファイルを表示し、Excel にコピーしたり、並べ替えやその他の操作を実行したりできます
プログラムの構成の入り口
プログラムの構成は次のとおりです。
# 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"設定項目
に従って、システムは単一文字辞書を使用するか複数文字辞書を使用するかを自動的に決定します。setting[“limit_world”]
- この項目が設定されている場合、たとえば「国」に等しい場合、プログラムは、すべての単語を計算用の名前に結合します。たとえば、Guohao と Haoguo という 2 つの名前が計算されます
- この項目を設定せず、空の
プログラムの原理
これは爬虫類の簡単なものです。 life.httpcn.com/xingming.asp Web サイトを開いて表示できます。これは POST フォームであり、必要なパラメータを入力して [送信] をクリックすると、結果ページの下部に 8 文字が表示されます。スコアと5フレームスコア。 スコアを取得したい場合は、2 つのことを行う必要があります。1 つは、クローラーが自動的にフォームを送信し、結果ページを取得することです。もう 1 つは、結果ページからスコアを抽出することです。それは非常に簡単で、urllib2 で実現できます (コードは /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()ここでの params はパラメータ辞書です。 このメソッドを使用して、データを含む POST が送信されます。次に、結果データがコンテンツから取得されます。 params のパラメータは次のように設定されます:
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"2 番目のことは、Web ページから必要なスコアを抽出することです。これを実現するために BeautifulSoup4 を使用できます。その構文も非常に簡単です:
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()このメソッドを使用します。 , HTML は BaZi と WuGe のスコアを分析して抽出することができます。
実行結果の例
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これらのスコアを使用して並べ替えることができ、非常に実用的な参考になります。
フレンドリーなリマインダー
スコアは、出生時間、制限された文字、資格のある文字の画数など、多くの要素に関連しています。これらの条件により、一部の名前のスコアが高くならないことが決まります。影響を受けません。これにより、相対スコアが高いものを見つけることができます。
- 現在、プログラムは 1 つの Web サイトのコンテンツのみをクロールできます。アドレスは http://life.httpcn.com/xingming.asp
-
-
このリストから名前を選択した後、Baidu Check 、Renren などの場所で検索して、否定的な人が同じ名前を持ったり、この名前を持つ人が多すぎて街が台無しになるのを防ぐことができます。
8文字のスコアは中国から受け継がれ、5フレームのスコアは現代の日本人によって発明されました。時々、西洋の干支の命名方法を試すこともできます。ホロスコープと5つのスコアが大きく異なるのは不思議です。さまざまな Web サイトのスコアは、これが参照のみであることをさらに証明しています - この記事のコードは
- git
hub に
アップロードされています
2.
Python meets データ収集ビデオチュートリアル
3.Python 学習マニュアル
以上が名前を取得するための Python クローラー実装コード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Dreamweaver Mac版
ビジュアル Web 開発ツール

ホットトピック



