백엔드 개발 파이썬 튜토리얼 이름을 가져오기 위한 Python 크롤러 구현 코드 예

이름을 가져오기 위한 Python 크롤러 구현 코드 예

May 10, 2017 am 11:42 AM
python 비열한

누구나 인생에서 한 가지 일을 겪게 됩니다. 그것이 나타나기 전에는 신경쓰지 않지만, 일단 나타나면 그것이 매우 중요하고 짧은 시간 내에 중대한 결정을 내려야 한다는 것을 알게 됩니다. 그것은 당신 자신을 위한 것입니다. 갓 태어난 아기에게 이름을 지어 주십시오. 다음 글에서는 파이썬 크롤러를 활용해 아이에게 좋은 이름을 지어주는 방법을 주로 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

서문

아이가 태어난 후 2주 이내에 이름을 정하는 데 시간이 많이 걸리기 때문에 부모라면 누구나 한 번쯤 경험했을 거라 믿는다. 모두가 저와 같습니다. 처음에는 한자가 너무 많다고 느꼈지만 아무 문자나 선택하여 이름을 만들 수 있다는 것을 나중에 깨달았습니다. 아무리 생각해도 부적절하다는 생각이 들어서 사전과 인터넷을 뒤져보니 당시, 노래 가사, 가경, 심지어 무술소설까지 찾아 봤습니다. 오랫동안 생각해 왔던 말투의 어려움, 친척의 이름과 같은 사투리 등의 문제 등 가족들의 의견과 반대가 자주 발생하게 되면서 반복되는 악순환에 빠지게 됩니다. 검색과 거부의 순환은 점점 더 혼란스러워집니다.

그래서 다시 인터넷에 를 검색해 보니 "좋은 남자아이 이름 전체 목록" 같은 기사가 한 번에 수백 개나 나오더라고요. 수천 개의 이름은 사용하기에는 너무 어지러워요. 이름을 테스트하는 웹사이트나 앱이 많이 있습니다. 이름을 입력하면 8자 또는 5자 등급을 얻을 수 있습니다. 이 기능은 상당히 좋으며 참고로 사용할 수 있습니다. 그러나 이름을 하나 입력해야 합니다. 테스트를 위해 하나씩 테스트하거나 이러한 웹 사이트나 앱에는 이름이 거의 없으며 한정 단어와 같은 요구 사항을 충족할 수 없거나 비용이 청구되기 시작하여 결국 유용한 항목을 찾을 수 없습니다.

그래서 저는 다음과 같은 프로그램을 만들고 싶었습니다.

  1. 주요 기능은 배치 이름에 대한 참조를 제공하는 것입니다. 아기 이름 생년월일과 별자리를 기준으로 계산됩니다.

  2. 예를 들어, 노래 책에서 좋은 이름을 찾으면 이름 라이브러리를 확장할 수 있습니다. 인터넷에서 해당 이름을 추가하여 사용할 수 있습니다.

  3. 예를 들어 일부 가계도에는 제한이 있습니다. 현재 "國" 문자가 있는 세대에 속해 있는 경우 이름에는 "國" 문자가 있어야 합니다.

  4. 이름 목록에 점수를 부여할 수 있으므로 반전 후 볼 수 있습니다. 높은 점수부터 낮은 점수까지 이름에서

이런 방법으로 사본을 얻을 수 있습니다. 자녀의 생년월일, 가계도와 일치하는 이름 목록이 있습니다. 제한 사항과 선호도, 그리고 목록에 참고용으로 점수가 주어져 있으며 이를 바탕으로 하나씩 알아내서 마음에 드는 이름을 찾을 수 있습니다. 물론, 새로운 아이디어가 있으면 언제든지 어휘에 새로운 이름을 추가하고 다시 계산할 수 있습니다.

프로그램 코드 구조

코드 소개:

  • /chinese-name-score 코드 루트 디렉터리

  • /chinese-name-score/main 코드 디렉터리

  • /chinese-name-score/main/dicts 사전 파일 디렉터리

  • /chinese-name-score/main/dicts/names_boys_double.txt 사전 파일, 남자아이의 두 글자 이름

  • /chinese-name-score/main/dicts/names_boys_single.txt 사전 파일, 남자아이의 한 글자 이름

  • /chinese- name-score/ main/dicts/names_girls_single.txt 사전 파일, 여자아이의 두 글자 이름

  • /chinese-name-score/main/dicts/names_grils_double.txt 사전 파일, 1개 - 여자아이의 이름

  • /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 프로그램 실행 입구

코드 사용 방법:

  1. 한정자가 없으면 사전 파일 names_boys_double을 찾으세요. txt 및 names_grils_double.txt를 여기에 추가할 수 있습니다. 일부 이름 목록을 찾으려면 행별로 나누고 끝에 추가하세요.

  2. 한정된 단어가 있으면 다음을 찾으세요. names_boys_single.txt 및 names_girls_single.txt 사전 파일을 여기에 추가하고 단일 단어 목록을 줄로 나누어 마지막에 추가할 수 있습니다.

  3. user_config.py를 열고 구성하세요. . 구성 항목은 다음 섹션을 참조하세요.

  4. get_name_score.py 스크립트 실행

  5. 출력 디렉터리에서 정렬 및 기타 작업을 위해 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”] 에 따라 단일 문자 사전을 사용할지 또는 단일 문자 사전을 사용할지 시스템이 자동으로 결정합니다. 다중 문자 사전:

  1. 예를 들어 이 항목이 "國"으로 설정되면 프로그램은 계산을 위해 모든 단어를 이름으로 결합합니다. 예를 들어, Guohao 및 Haoguo 이름이 모두 계산됩니다.

  2. 이 항목을 설정하지 않고 빈 문자열 을 유지하면 프로그램은 이중 단어만 읽습니다. *_double.txt 사전

프로그램 원리

간단한 크롤러입니다. life.httpcn.com/xingming.asp 웹사이트를 열어서 확인할 수 있습니다. 이는 필수 매개변수를 입력하고 제출을 클릭하면 결과 페이지 하단에 8자가 표시됩니다. 점수와 5프레임 점수.

점수를 얻으려면 두 가지 작업을 수행해야 합니다. 하나는 자동으로 크롤러에 양식을 제출하고 결과 페이지를 가져오는 것입니다.

우선 매우 간단합니다. 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()
로그인 후 복사

여기의 매개변수는 매개변수입니다. dict. 이 방법을 사용하면 데이터가 포함된 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"
로그인 후 복사

두 번째는 웹 페이지에서 필요한 점수를 추출하는 것입니다. 이를 달성하기 위해 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을 구문 분석하고 8개 문자와 5개 그리드의 점수를 추출할 수 있습니다.

실행 결과의 예

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. 점수는 출생 시간, 제한된 문자, 자격을 갖춘 스트로크 등 여러 요소와 관련이 있습니다. 이러한 조건에 따라 일부 이름은 높은 점수를 얻지 못할 것으로 결정되었으므로 이에 영향을 받지 말고 상대 점수가 높은 이름을 찾으십시오.

  2. 현재; , 프로그램은 하나의 웹사이트 콘텐츠만 크롤링할 수 있으며 주소는 http://life.httpcn.com/xingming.asp

  3. 이 목록은 참고용입니다. 역사상 많은 유명인과 위대한 사람들이 있습니다. 그들의 이름은 매우 낮은 평가를 받았지만 모두 훌륭한 성과를 거두었습니다. , 이름은 어느 정도 영향력이 있지만 때로는 눈에 띄는 단어가 최고입니다. 🎜>

    이 목록에서 이름을 선택하면 Baidu, Renren 및 기타 장소에서 이름이 같거나 이 이름을 가진 사람이 너무 많을 경우를 대비하여 확인할 수 있습니다. 🎜>
  4. 8자 악보는 중국에서 물려받았고, 5자 악보는 근대에 일본인이 발명한 것이기도 합니다. 5개의 점수는 웹사이트마다 매우 다릅니다. 이는 이 항목이

  5. 다음 사이트에

    업로드
  6. 되었음을 증명합니다.
git

허브 요약

[관련 추천]

1. 🎜>

2.

Python, 데이터 수집을 만나다 영상 튜토리얼

3. Python 학습 매뉴얼

위 내용은 이름을 가져오기 위한 Python 크롤러 구현 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

파이썬 : 게임, Guis 등 파이썬 : 게임, Guis 등 Apr 13, 2025 am 12:14 AM

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다 PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다 Apr 14, 2025 am 12:13 AM

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

Debian Readdir가 다른 도구와 통합하는 방법 Debian Readdir가 다른 도구와 통합하는 방법 Apr 13, 2025 am 09:42 AM

데비안 시스템의 readdir 함수는 디렉토리 컨텐츠를 읽는 데 사용되는 시스템 호출이며 종종 C 프로그래밍에 사용됩니다. 이 기사에서는 ReadDir를 다른 도구와 통합하여 기능을 향상시키는 방법을 설명합니다. 방법 1 : C 언어 프로그램을 파이프 라인과 결합하고 먼저 C 프로그램을 작성하여 readDir 함수를 호출하고 결과를 출력하십시오.#포함#포함#포함#포함#includinTmain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

파이썬과 시간 : 공부 시간을 최대한 활용 파이썬과 시간 : 공부 시간을 최대한 활용 Apr 14, 2025 am 12:02 AM

제한된 시간에 Python 학습 효율을 극대화하려면 Python의 DateTime, Time 및 Schedule 모듈을 사용할 수 있습니다. 1. DateTime 모듈은 학습 시간을 기록하고 계획하는 데 사용됩니다. 2. 시간 모듈은 학습과 휴식 시간을 설정하는 데 도움이됩니다. 3. 일정 모듈은 주간 학습 작업을 자동으로 배열합니다.

NGINX SSL 인증서 업데이트 Debian Tutorial NGINX SSL 인증서 업데이트 Debian Tutorial Apr 13, 2025 am 07:21 AM

이 기사에서는 Debian 시스템에서 NginxSSL 인증서를 업데이트하는 방법에 대해 안내합니다. 1 단계 : CertBot을 먼저 설치하십시오. 시스템에 CERTBOT 및 PYTHON3-CERTBOT-NGINX 패키지가 설치되어 있는지 확인하십시오. 설치되지 않은 경우 다음 명령을 실행하십시오. sudoapt-getupdatesudoapt-getinstallcertbotpython3-certbot-nginx 2 단계 : 인증서 획득 및 구성 rectbot 명령을 사용하여 nginx를 획득하고 nginx를 구성하십시오.

Debian OpenSSL에서 HTTPS 서버를 구성하는 방법 Debian OpenSSL에서 HTTPS 서버를 구성하는 방법 Apr 13, 2025 am 11:03 AM

데비안 시스템에서 HTTPS 서버를 구성하려면 필요한 소프트웨어 설치, SSL 인증서 생성 및 SSL 인증서를 사용하기 위해 웹 서버 (예 : Apache 또는 Nginx)를 구성하는 등 여러 단계가 포함됩니다. 다음은 Apacheweb 서버를 사용하고 있다고 가정하는 기본 안내서입니다. 1. 필요한 소프트웨어를 먼저 설치하고 시스템이 최신 상태인지 확인하고 Apache 및 OpenSSL을 설치하십시오 : Sudoaptupdatesudoaptupgradesudoaptinsta

데비안에 대한 Gitlab의 플러그인 개발 안내서 데비안에 대한 Gitlab의 플러그인 개발 안내서 Apr 13, 2025 am 08:24 AM

데비안에서 gitlab 플러그인을 개발하려면 몇 가지 특정 단계와 지식이 필요합니다. 다음은이 과정을 시작하는 데 도움이되는 기본 안내서입니다. Gitlab을 먼저 설치하려면 Debian 시스템에 Gitlab을 설치해야합니다. Gitlab의 공식 설치 매뉴얼을 참조 할 수 있습니다. API 액세스 토큰을 얻으십시오 API 통합을 수행하기 전에 Gitlab의 API 액세스 토큰을 먼저 가져와야합니다. Gitlab 대시 보드를 열고 사용자 설정에서 "AccessTokens"옵션을 찾은 다음 새 액세스 토큰을 생성하십시오. 생성됩니다

Apache는 어떤 서비스입니까? Apache는 어떤 서비스입니까? Apr 13, 2025 pm 12:06 PM

아파치는 인터넷 뒤의 영웅입니다. 웹 서버 일뿐 만 아니라 큰 트래픽을 지원하고 동적 콘텐츠를 제공하는 강력한 플랫폼이기도합니다. 모듈 식 설계를 통해 매우 높은 유연성을 제공하여 필요에 따라 다양한 기능을 확장 할 수 있습니다. 그러나 Modularity는 또한 신중한 관리가 필요한 구성 및 성능 문제를 제시합니다. Apache는 사용자 정의가 필요한 서버 시나리오에 적합하고 복잡한 요구를 충족시킵니다.

See all articles