Skip to content

Instantly share code, notes, and snippets.

@KimMyungSam
Created September 11, 2017 03:48
Show Gist options
  • Save KimMyungSam/ffafaf56c7b134e0483a581cf25bab31 to your computer and use it in GitHub Desktop.
Save KimMyungSam/ffafaf56c7b134e0483a581cf25bab31 to your computer and use it in GitHub Desktop.
네이버 실시간 검색 순위를 크롤링하여 네이버 메일로 보냄
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 네이버 실시간 검색어 순위로 크롤링하여 메일로 보냄"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### email_send.py로 작성"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import smtplib\n",
"\n",
"from email.mime.multipart import MIMEMultipart\n",
"from email.mime.text import MIMEText\n",
"\n",
"def sendMail(from_email,to_email,text_cont,html_cont):\n",
"\n",
" message = MIMEMultipart('alternative')\n",
" message['Subject'] = \"네이버실시간 검색어 순위\"\n",
" message['From'] = from_email\n",
" message['To'] = to_email\n",
"\n",
" part1 = MIMEText(text_cont,'plain')\n",
" part2 = MIMEText(html_cont,'html')\n",
"\n",
" message.attach(part1)\n",
" message.attach(part2)\n",
"\n",
" #smtp 서버에 접속해서 전송\n",
"\n",
" #gmail 기준으로 설정\n",
" smtp_server = smtplib.SMTP('smtp.gmail.com:587')\n",
" smtp_server.starttls()\n",
" # 구글보안 문제로 윈도즈앱으로 등록하여 비번을 새롭게 받아서 사용함.\n",
" smtp_server.login('whywhathow03@gmail.com','tdaowzhhhbjmuwhc')\n",
" smtp_server.sendmail(from_email,to_email,message.as_string())\n",
" smtp_server.quit()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### google mail에서 naver mail로 보내기\n",
"##### naver_mail.py로 작성"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import requests #pip install requests, pip3 install requests\n",
"from bs4 import BeautifulSoup #pip install beautifulsoup4, pip3 install beautifulsoup4\n",
"\n",
"# 메일을 보내기 위한 모듈을 불러옵니다\n",
"from email_send import sendMail\n",
"\n",
"url = \"https://www.naver.com/\"\n",
"search_url = \"https://search.naver.com/search.naver?where=nexearch&query=%s&sm=top_lve&ie=utf8\"\n",
"html = requests.get(url)\n",
"html = BeautifulSoup(html.text, 'html.parser')\n",
"\n",
"html_contents = \"\"\n",
"search_keywords = html.select(\".PM_CL_realtimeKeyword_rolling .ah_item .ah_a\")\n",
"for keyword in search_keywords:\n",
" rank = keyword.select_one(\".ah_r\").text\n",
" query = keyword.select_one(\".ah_k\").text\n",
" #print(rank,query)\n",
" html_contents += rank+\"위 \"+query+\"<br/>\"\n",
" html_contents += \"<a href='\"+(search_url%query)+\"'>검색 페이지</a><br/>\"\n",
"\n",
"text_contents = BeautifulSoup(html_contents,\"html.parser\").get_text()\n",
"\n",
"#메일을 보낼 때는 아래처럼 함수를 호출합니다. 구글에서 네이버로 보냄\n",
"sendMail(\"whywhathow03@gmail.com\",\"neverfail03@naver.com\", text_contents, html_contents)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment