Heim Backend-Entwicklung Python-Tutorial Beispiel für einen Python-Crawler-Implementierungscode für die Übernahme von Namen

Beispiel für einen Python-Crawler-Implementierungscode für die Übernahme von Namen

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

Jeder wird in seinem Leben auf etwas stoßen, bevor es auftaucht, aber wenn es dann kommt, stellt er fest, dass es äußerst wichtig ist und dass in kurzer Zeit eine wichtige Entscheidung getroffen werden muss. Das ist für Sie selbst. Geben Sie Ihrem Neugeborenen einen Namen. Der folgende Artikel stellt hauptsächlich vor, wie Sie mit dem Python-Crawler Ihrem Kind einen guten Namen geben können.

Vorwort

Ich glaube, jeder Elternteil hat es schon einmal erlebt, denn es kostet viel Zeit, innerhalb von zwei Wochen nach der Geburt des Kindes einen Namen zu wählen (eine Geburtsurkunde). Jeder ist wie ich. Obwohl ich das Gefühl hatte, dass es so viele chinesische Schriftzeichen gibt, konnte ich mir später einen Namen machen Egal wie ich darüber nachdachte, ich fand es unangemessen, also suchte und las ich Tang-Gedichte, das Buch der Lieder und sogar den Namen Ich denke schon seit langem über die Meinungen und Einwände meiner Familienangehörigen nach, z. B. über Schwierigkeiten beim Sprechen und den gleichen Akzent wie der Name von Verwandten. Auf diese Weise gerate ich in einen Teufelskreis Durchsuchungen und Ablehnungen werden immer unübersichtlicher.

Also gingen wir noch einmal ins Internet, um zu suchen und fanden viele Artikel im Internet, wie zum Beispiel „Eine vollständige Liste guter Jungennamen“. Diese Artikel enthielten Hunderte von Artikeln auf einmal Tausende von Namen sind zu schwindelerregend, um sie zu verwenden. Es gibt viele Websites oder Apps, die Namen testen. Sie können eine Bewertung mit acht oder fünf Zeichen erhalten. Diese Funktion ist recht gut und kann als Referenz verwendet werden von einem zum Testen, oder Diese Websites oder APPs haben nur sehr wenige Namen, können entweder unsere Anforderungen nicht erfüllen, z. B. qualifizierende Wörter, oder sie fangen an, Gebühren zu erheben, und am Ende können wir keine nützlichen finden.

Also wollte ich ein Programm wie dieses erstellen:

  1. Die Hauptfunktion besteht darin, Referenzen für Stapelnamen bereitzustellen, die mit dem kombiniert werden Babynamen werden anhand des Geburtsdatums und des Horoskops berechnet.

  2. Sie können Ihre Namensbibliothek beispielsweise im Buch der Lieder erweitern Wenn Sie im Internet sind und sehen möchten, wie sie sind, können Sie sie hinzufügen und verwenden. Sie können die im Namen verwendeten Zeichen einschränken befinden sich derzeit in der Generation mit dem Zeichen „国“, der Name muss das Zeichen „国“ haben; bei den Namen von hohen bis niedrigen Werten;

  3. Auf diese Weise können Sie eine Kopie erhalten. Es gibt eine Liste mit Namen, die zum Geburtsdatum Ihres Kindes und Ihrem Stammbaum passen Einschränkungen und Ihre Vorlieben, und die Liste hat Bewertungen als Referenz angegeben. Auf dieser Grundlage können wir einen nach dem anderen herausfinden, den Namen, der uns gefällt. Wenn Sie neue Ideen haben, können Sie den Wortschatz natürlich jederzeit um neue Namen ergänzen und neu berechnen.
  4. Codestruktur des Programms

Codeeinführung:

/chinese-name-score Code-Stammverzeichnis

/chinese-name-score/

main
    Codeverzeichnis
  • /chinese-name-score/main/dicts Wörterbuchdateiverzeichnis
  • /chinese-name-score/main/dicts/names_boys_double.txt Wörterbuchdatei, zweibuchstabige Namen für Jungen

  • /chinese-name-score/main/dicts/names_boys_single.txt Wörterbuchdatei, Einzelbuchstabennamen für Jungen

  • /chinese- name-score/ main/dicts/names_girls_single.txt Wörterbuchdatei, zweibuchstabige Namen für Mädchen

  • /chinese-name-score/main/dicts/names_grils_double.txt Wörterbuchdatei, eins -Buchstabennamen für Mädchen

  • /chinese-name-score/main/outputs Ausgabedatenverzeichnis

  • /chinese-name-score/main /outputs/names_girls_source_wxy.txt Ausgabebeispieldateien

  • /chinese-name-score/main/scripts Einige Skripte zur Vorverarbeitung von Wörterbuchdateien

  • / chinese-name -score/main/scripts/unique_

    file
  • _lines.py Legt die Wörterbuchdatei fest, um Duplikate und Leerzeilen aus Namen im Wörterbuch
  • /chinese zu entfernen -name -score/main/sys_config.py Die Systemkonfiguration des Programms, einschließlich der gecrawlten Ziel-URL und des Wörterbuchdateipfads
  • /chinese-name-score/main/user_config.py Die Benutzerkonfiguration des Programms, einschließlich Jahr, Monat, Tag, Uhrzeit, Geschlecht und andere Einstellungen des Babys

  • /chinese-name-score/main/get_name_score.py Programmlaufeingang

  • So verwenden Sie den Code:

  • Wenn keine Qualifikationsmerkmale vorhanden sind, suchen Sie nach den Wörterbuchdateien namens_boys_double. txt und namen_grils_double.txt, Sie können hier Ihre eigenen hinzufügen. Für einige gefundene Namenslisten teilen Sie sie einfach nach Zeilen auf und fügen Sie sie am Ende hinzu.

Wenn es qualifizierte Wörter gibt, suchen Sie die Wörterbuchdateien „names_boys_single.txt“ und „names_girls_single.txt“ und fügen Sie hier Ihre Favoriten hinzu. Eine einzelne Wortliste kann nach Zeilen unterteilt und am Ende hinzugefügt werden.

  1. Öffnen Sie user_config.py und konfigurieren Sie es . Siehe den nächsten Abschnitt für Konfigurationselemente;

  2. Führen Sie das Skript get_name_score.py aus

  3. Im Ausgabeverzeichnis können Sie Ihre eigenen Ausgabedateien anzeigen, die zum Sortieren und für andere Vorgänge nach Excel kopiert werden können.

Programm Der Konfigurationseintrag des Programms

ist wie folgt konfiguriert:

# 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"
Nach dem Login kopieren

Anhand des Konfigurationselements setting[“limit_world”] entscheidet das System automatisch, ob ein Einzelzeichen verwendet werden soll Wörterbuch oder ein Wörterbuch mit mehreren Zeichen:

  1. Wenn dieses Element festgelegt ist, z. B. wenn es gleich „国“ ist, kombiniert das Programm alle Wörter zur Berechnung zu Namen . Beispielsweise werden sowohl die Namen Guohao als auch Haoguo berechnet.

  2. Wenn Sie dieses Element nicht festlegen und die Zeichenfolge leer lassen, liest das Programm nur das Doppelwort-Wörterbuch von *_double.txt

Prinzip des Programms

Dies ist ein einfacher Crawler. Sie können die Website life.httpcn.com/xingming.asp öffnen. Dies ist ein POST-Formular. Geben Sie die erforderlichen Parameter ein und klicken Sie auf „Senden“. Die Ergebnisseite wird geöffnet Score und der Fünf-Frame-Score.

Wenn Sie Ergebnisse erhalten möchten, müssen Sie zum einen das Formular automatisch an den Crawler senden und zum anderen die Ergebnisse aus der Ergebnisseite extrahieren >

Erstens ist es sehr einfach, urllib2 kann es implementieren (der Code befindet sich in /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()
Nach dem Login kopieren
Die Parameter hier sind Mit dieser Methode wird ein POST mit Daten durchgeführt. Anschließend werden die Ergebnisdaten aus dem Inhalt abgerufen. Die Parameter von

params werden wie folgt festgelegt:

 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"
Nach dem Login kopieren
Die zweite Sache besteht darin, die erforderlichen Bewertungen aus der Webseite zu extrahieren. Wir können BeautifulSoup4 verwenden, um dies zu erreichen, und seine Syntax ist auch ganz einfach:

 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()
Nach dem Login kopieren
Mit dieser Methode kann HTML analysiert und die Partituren von acht Zeichen und fünf Rastern extrahiert werden.

Beispiele für Laufergebnisse

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
Nach dem Login kopieren
Mit diesen Ergebnissen können wir sie sortieren, was eine sehr praktische Referenz ist.

Freundliche Erinnerung

  1. Die Punktzahl hängt von vielen Faktoren ab, wie zum Beispiel dem Geburtszeitpunkt, den begrenzten Charakteren, den Strichen der Qualifizierten Zeichen usw. Diese Bedingungen Es wurde entschieden, dass einige Namen keine hohen Bewertungen haben werden, also seien Sie davon nicht betroffen, suchen Sie einfach diejenigen mit hohen relativen Bewertungen

  2. Derzeit Das Programm kann nur den Inhalt einer Website crawlen und die Adresse lautet http://life.httpcn.com/xingming.asp

  3. Diese Liste dient nur als Referenz, die ich gelesen habe Es gibt viele Artikel in der Geschichte, deren Namen sehr niedrig sind, aber sie alle haben einen gewissen Einfluss, aber manchmal sind eingängige Worte die besten >

    Nachdem Sie den Namen aus dieser Liste ausgewählt haben, können Sie ihn auf Baidu, Renren und anderen Orten überprüfen. Nur für den Fall, dass einige negative Personen denselben Namen haben oder es zu viele Personen mit diesem Namen gibt >

  4. Die Acht-Zeichen-Punktzahl stammt aus China, und die Fünf-Zeichen-Punktzahl wurde in der Neuzeit von den Japanern erfunden. Manchmal können Sie auch die westliche Tierkreis-Benennungsmethode ausprobieren, und seltsamerweise auch die Horoskope und die Fünf Die Ergebnisse sind auf verschiedenen Websites sehr unterschiedlich, was ein weiterer Beweis dafür ist, dass dieses Ding nur als Referenz dient.
  5. Der Code dieses Artikels wurde

    hochgeladen

    auf
  6. git
hub

Zusammenfassung[Verwandte Empfehlungen]

1. Python Free Video Tutorial

2.

Python trifft Datenerfassungs-Video-Tutorial

3.

Python-Lernhandbuch

Das obige ist der detaillierte Inhalt vonBeispiel für einen Python-Crawler-Implementierungscode für die Übernahme von Namen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hadidb: Eine leichte, horizontal skalierbare Datenbank in Python Hadidb: Eine leichte, horizontal skalierbare Datenbank in Python Apr 08, 2025 pm 06:12 PM

Hadidb: Eine leichte, hochrangige skalierbare Python-Datenbank Hadidb (HadIDB) ist eine leichte Datenbank in Python mit einem hohen Maß an Skalierbarkeit. Installieren Sie HadIDB mithilfe der PIP -Installation: PipinstallHadIDB -Benutzerverwaltung erstellen Benutzer: createUser (), um einen neuen Benutzer zu erstellen. Die Authentication () -Methode authentifiziert die Identität des Benutzers. fromHadidb.operationImportUseruser_obj = user ("admin", "admin") user_obj.

Der 2-stündige Python-Plan: ein realistischer Ansatz Der 2-stündige Python-Plan: ein realistischer Ansatz Apr 11, 2025 am 12:04 AM

Sie können grundlegende Programmierkonzepte und Fähigkeiten von Python innerhalb von 2 Stunden lernen. 1. Lernen Sie Variablen und Datentypen, 2. Master Control Flow (bedingte Anweisungen und Schleifen), 3.. Verstehen Sie die Definition und Verwendung von Funktionen, 4. Beginnen Sie schnell mit der Python -Programmierung durch einfache Beispiele und Code -Snippets.

Navicat -Methode zum Anzeigen von MongoDB -Datenbankkennwort Navicat -Methode zum Anzeigen von MongoDB -Datenbankkennwort Apr 08, 2025 pm 09:39 PM

Es ist unmöglich, das MongoDB -Passwort direkt über Navicat anzuzeigen, da es als Hash -Werte gespeichert ist. So rufen Sie verlorene Passwörter ab: 1. Passwörter zurücksetzen; 2. Überprüfen Sie die Konfigurationsdateien (können Hash -Werte enthalten). 3. Überprüfen Sie Codes (May Hardcode -Passwörter).

Python: Erforschen der primären Anwendungen Python: Erforschen der primären Anwendungen Apr 10, 2025 am 09:41 AM

Python wird in den Bereichen Webentwicklung, Datenwissenschaft, maschinelles Lernen, Automatisierung und Skripten häufig verwendet. 1) In der Webentwicklung vereinfachen Django und Flask Frameworks den Entwicklungsprozess. 2) In den Bereichen Datenwissenschaft und maschinelles Lernen bieten Numpy-, Pandas-, Scikit-Learn- und TensorFlow-Bibliotheken eine starke Unterstützung. 3) In Bezug auf Automatisierung und Skript ist Python für Aufgaben wie automatisiertes Test und Systemmanagement geeignet.

Wie man AWS -Kleber mit Amazon Athena verwendet Wie man AWS -Kleber mit Amazon Athena verwendet Apr 09, 2025 pm 03:09 PM

Als Datenprofi müssen Sie große Datenmengen aus verschiedenen Quellen verarbeiten. Dies kann Herausforderungen für das Datenmanagement und die Analyse darstellen. Glücklicherweise können zwei AWS -Dienste helfen: AWS -Kleber und Amazon Athena.

Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Wie optimieren Sie die MySQL-Leistung für Hochlastanwendungen? Apr 08, 2025 pm 06:03 PM

Die MySQL-Datenbankleistung Optimierungshandbuch In ressourcenintensiven Anwendungen spielt die MySQL-Datenbank eine entscheidende Rolle und ist für die Verwaltung massiver Transaktionen verantwortlich. Mit der Erweiterung der Anwendung werden jedoch die Datenbankleistung Engpässe häufig zu einer Einschränkung. In diesem Artikel werden eine Reihe effektiver Strategien zur Leistungsoptimierung von MySQL -Leistung untersucht, um sicherzustellen, dass Ihre Anwendung unter hohen Lasten effizient und reaktionsschnell bleibt. Wir werden tatsächliche Fälle kombinieren, um eingehende Schlüsseltechnologien wie Indexierung, Abfrageoptimierung, Datenbankdesign und Caching zu erklären. 1. Das Design der Datenbankarchitektur und die optimierte Datenbankarchitektur sind der Eckpfeiler der MySQL -Leistungsoptimierung. Hier sind einige Kernprinzipien: Die Auswahl des richtigen Datentyps und die Auswahl des kleinsten Datentyps, der den Anforderungen entspricht, kann nicht nur Speicherplatz speichern, sondern auch die Datenverarbeitungsgeschwindigkeit verbessern.

So starten Sie den Server mit Redis So starten Sie den Server mit Redis Apr 10, 2025 pm 08:12 PM

Zu den Schritten zum Starten eines Redis -Servers gehören: Installieren von Redis gemäß dem Betriebssystem. Starten Sie den Redis-Dienst über Redis-Server (Linux/macOS) oder redis-server.exe (Windows). Verwenden Sie den Befehl redis-cli ping (linux/macOS) oder redis-cli.exe ping (Windows), um den Dienststatus zu überprüfen. Verwenden Sie einen Redis-Client wie Redis-Cli, Python oder Node.js, um auf den Server zuzugreifen.

So lesen Sie Redis -Warteschlange So lesen Sie Redis -Warteschlange Apr 10, 2025 pm 10:12 PM

Um eine Warteschlange aus Redis zu lesen, müssen Sie den Warteschlangenname erhalten, die Elemente mit dem Befehl LPOP lesen und die leere Warteschlange verarbeiten. Die spezifischen Schritte sind wie folgt: Holen Sie sich den Warteschlangenname: Nennen Sie ihn mit dem Präfix von "Warteschlange:" wie "Warteschlangen: My-Queue". Verwenden Sie den Befehl LPOP: Wischen Sie das Element aus dem Kopf der Warteschlange aus und geben Sie seinen Wert zurück, z. B. die LPOP-Warteschlange: my-queue. Verarbeitung leerer Warteschlangen: Wenn die Warteschlange leer ist, gibt LPOP NIL zurück, und Sie können überprüfen, ob die Warteschlange existiert, bevor Sie das Element lesen.

See all articles