{"id":3180,"date":"2018-02-24T10:19:02","date_gmt":"2018-02-24T02:19:02","guid":{"rendered":"http:\/\/cn.hostease.com\/xueyuan\/?p=3180"},"modified":"2018-02-24T10:19:02","modified_gmt":"2018-02-24T02:19:02","slug":"%e5%88%a9%e7%94%a8python%e7%9b%91%e6%8e%a7%e5%a4%a9%e6%b0%94","status":"publish","type":"post","link":"https:\/\/cn.hostease.com\/xueyuan\/uncategorized\/%e5%88%a9%e7%94%a8python%e7%9b%91%e6%8e%a7%e5%a4%a9%e6%b0%94\/","title":{"rendered":"\u5229\u7528python\u76d1\u63a7\u5929\u6c14"},"content":{"rendered":"<p><strong>\u9700\u6c42\uff1a<\/strong><\/p>\n<p>\u4ece\u5929\u6c14\u7f51\u7ad9\u6293\u53d6\u5929\u6c14\uff0c\u5728\u6bcf\u59296\u70b9\uff0c\u68c0\u67e5\u5f53\u5929\u662f\u5426\u4f1a\u4e0b\u96e8\u3002\u5982\u679c\u4e0b\u96e8\uff0c\u90ae\u4ef6\u63d0\u9192\u5e26\u4f1e\u3002<\/p>\n<p><strong>\u4ee3\u7801\uff1a<\/strong><\/p>\n<div>\n<div id=\"highlighter_737619\" class=\"syntaxhighlighter  python\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"gutter\">\n<div class=\"line number1 index0 alt2\">1<\/div>\n<div class=\"line number2 index1 alt1\">2<\/div>\n<div class=\"line number3 index2 alt2\">3<\/div>\n<div class=\"line number4 index3 alt1\">4<\/div>\n<div class=\"line number5 index4 alt2\">5<\/div>\n<div class=\"line number6 index5 alt1\">6<\/div>\n<div class=\"line number7 index6 alt2\">7<\/div>\n<div class=\"line number8 index7 alt1\">8<\/div>\n<div class=\"line number9 index8 alt2\">9<\/div>\n<div class=\"line number10 index9 alt1\">10<\/div>\n<div class=\"line number11 index10 alt2\">11<\/div>\n<div class=\"line number12 index11 alt1\">12<\/div>\n<div class=\"line number13 index12 alt2\">13<\/div>\n<div class=\"line number14 index13 alt1\">14<\/div>\n<div class=\"line number15 index14 alt2\">15<\/div>\n<div class=\"line number16 index15 alt1\">16<\/div>\n<div class=\"line number17 index16 alt2\">17<\/div>\n<div class=\"line number18 index17 alt1\">18<\/div>\n<div class=\"line number19 index18 alt2\">19<\/div>\n<div class=\"line number20 index19 alt1\">20<\/div>\n<div class=\"line number21 index20 alt2\">21<\/div>\n<div class=\"line number22 index21 alt1\">22<\/div>\n<div class=\"line number23 index22 alt2\">23<\/div>\n<div class=\"line number24 index23 alt1\">24<\/div>\n<div class=\"line number25 index24 alt2\">25<\/div>\n<div class=\"line number26 index25 alt1\">26<\/div>\n<div class=\"line number27 index26 alt2\">27<\/div>\n<div class=\"line number28 index27 alt1\">28<\/div>\n<div class=\"line number29 index28 alt2\">29<\/div>\n<div class=\"line number30 index29 alt1\">30<\/div>\n<div class=\"line number31 index30 alt2\">31<\/div>\n<div class=\"line number32 index31 alt1\">32<\/div>\n<div class=\"line number33 index32 alt2\">33<\/div>\n<div class=\"line number34 index33 alt1\">34<\/div>\n<div class=\"line number35 index34 alt2\">35<\/div>\n<div class=\"line number36 index35 alt1\">36<\/div>\n<div class=\"line number37 index36 alt2\">37<\/div>\n<div class=\"line number38 index37 alt1\">38<\/div>\n<\/td>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"python plain\">[root@pos\u00a0~]<\/code><code class=\"python comments\">#\u00a0cat\u00a0weather.py<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"python comments\">#!\/usr\/bin\/python<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"python comments\">#\u00a0-*-\u00a0coding:\u00a0UTF-8\u00a0-*-<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"python keyword\">import<\/code>\u00a0<code class=\"python plain\">requests,bs4,smtplib<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"python keyword\">def<\/code>\u00a0<code class=\"python plain\">sendMail(body):<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">smtp_server\u00a0<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python string\">'smtp.126.com'<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">from_mail\u00a0<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python string\">'pp_1990@126.com'<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">mail_pass\u00a0<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python string\">'xxxxxxxxxx'<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">to_mail\u00a0<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python plain\">[<\/code><code class=\"python string\">'50xxxxxx6@qq.com'<\/code><code class=\"python plain\">]<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">from_name\u00a0<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python string\">'Weather\u00a0Monitor'<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">subject\u00a0<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python string\">'Raining\u00a0Today!'<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">mail\u00a0<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python plain\">[<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python string\">\"From:\u00a0%s\u00a0&lt;%s&gt;\"<\/code>\u00a0<code class=\"python keyword\">%<\/code>\u00a0<code class=\"python plain\">(from_name,\u00a0from_mail),<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python string\">\"To:\u00a0%s\"<\/code>\u00a0<code class=\"python keyword\">%<\/code>\u00a0<code class=\"python string\">','<\/code><code class=\"python plain\">.join(to_mail),<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python string\">\"Subject:\u00a0%s\"<\/code>\u00a0<code class=\"python keyword\">%<\/code>\u00a0<code class=\"python plain\">subject,<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">\"\",<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">body<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">]<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">msg\u00a0<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python string\">'\\n'<\/code><code class=\"python plain\">.join(mail)<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">try<\/code><code class=\"python plain\">:<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">s\u00a0<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python plain\">smtplib.SMTP_SSL(<\/code><code class=\"python string\">'smtp.126.com'<\/code><code class=\"python plain\">,<\/code><code class=\"python value\">465<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">s.login(from_mail,\u00a0mail_pass)<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">s.sendmail(from_mail,\u00a0to_mail,\u00a0msg)<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">s.quit()<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">except<\/code>\u00a0<code class=\"python plain\">smtplib.SMTPException\u00a0as\u00a0e:<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python string\">\"Error:\u00a0\"<\/code><code class=\"python keyword\">+<\/code><code class=\"python plain\">e)<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"python keyword\">if<\/code>\u00a0<code class=\"python plain\">__name__\u00a0<\/code><code class=\"python keyword\">=<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python string\">\"__main__\"<\/code><code class=\"python plain\">:<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">headers<\/code><code class=\"python keyword\">=<\/code><code class=\"python plain\">{<\/code><code class=\"python string\">'User-Agent'<\/code><code class=\"python plain\">:\u00a0<\/code><code class=\"python string\">'Mozilla\/5.0\u00a0(X11;\u00a0Ubuntu;\u00a0Linux\u00a0x86_64;\u00a0rv:24.0)\u00a0Gecko\/20100101\u00a0Firefox\/24.0'<\/code><code class=\"python plain\">}<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">url<\/code><code class=\"python keyword\">=<\/code><code class=\"python string\">'https:\/\/www.tianqi.com\/shanghai\/'<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">urlhtml<\/code><code class=\"python keyword\">=<\/code><code class=\"python plain\">requests.get(url,headers<\/code><code class=\"python keyword\">=<\/code><code class=\"python plain\">headers)<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">urlhtml.raise_for_status()<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">weatherhtml<\/code><code class=\"python keyword\">=<\/code><code class=\"python plain\">bs4.BeautifulSoup(urlhtml.text[:],<\/code><code class=\"python string\">'html.parser'<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">weather<\/code><code class=\"python keyword\">=<\/code><code class=\"python plain\">weatherhtml.select(<\/code><code class=\"python string\">'div\u00a0li\u00a0b'<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">for<\/code>\u00a0<code class=\"python plain\">i\u00a0<\/code><code class=\"python keyword\">in<\/code>\u00a0<code class=\"python functions\">range<\/code><code class=\"python plain\">(<\/code><code class=\"python functions\">len<\/code><code class=\"python plain\">(weather)):<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">weathnow<\/code><code class=\"python keyword\">=<\/code><code class=\"python plain\">weather[i].getText()<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python keyword\">if<\/code>\u00a0<code class=\"python plain\">weathnow\u00a0<\/code><code class=\"python keyword\">=<\/code><code class=\"python keyword\">=<\/code>\u00a0<code class=\"python string\">'\u6709\u96e8'<\/code><code class=\"python plain\">:<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python plain\">sendMail(<\/code><code class=\"python string\">\"It's\u00a0rainy\u00a0today.\u00a0Remember\u00a0to\u00a0bring\u00a0your\u00a0umbrella!\"<\/code><code class=\"python plain\">)<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"python spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"python functions\">print<\/code><code class=\"python plain\">(<\/code><code class=\"python string\">\"DONE!\"<\/code><code class=\"python plain\">)<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u5c06\u811a\u672c\u5199\u5165\u8ba1\u5212\u4efb\u52a1\uff0c\u6bcf\u59296\u70b9\u6267\u884c\u4e00\u6b21\u3002<\/p>\n<p>\u8ba1\u5212\u4efb\u52a1\u53ef\u4ee5\u91c7\u7528Task Scheduler\uff08windows\uff09\u3001launchd\uff08OS X\uff09\u3001cron\uff08linux\uff09\u7b49\u7cfb\u7edf\u5de5\u5177\u3002<\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9700\u6c42\uff1a \u4ece\u5929\u6c14\u7f51\u7ad9\u6293\u53d6\u5929\u6c14\uff0c\u5728\u6bcf\u59296\u70b9\uff0c\u68c0\u67e5\u5f53\u5929\u662f\u5426\u4f1a\u4e0b\u96e8\u3002\u5982\u679c\u4e0b\u96e8\uff0c\u90ae\u4ef6\u63d0\u9192\u5e26\u4f1e\u3002 \u4ee3\u7801\uff1a 1 2 3 4  &#8230; <a title=\"\u5229\u7528python\u76d1\u63a7\u5929\u6c14\" class=\"read-more\" href=\"https:\/\/cn.hostease.com\/xueyuan\/uncategorized\/%e5%88%a9%e7%94%a8python%e7%9b%91%e6%8e%a7%e5%a4%a9%e6%b0%94\/\" aria-label=\"\u9605\u8bfb \u5229\u7528python\u76d1\u63a7\u5929\u6c14\">\u9605\u8bfb\u66f4\u591a<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3180","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/3180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/comments?post=3180"}],"version-history":[{"count":1,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/3180\/revisions"}],"predecessor-version":[{"id":3181,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/posts\/3180\/revisions\/3181"}],"wp:attachment":[{"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/media?parent=3180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/categories?post=3180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cn.hostease.com\/xueyuan\/wp-json\/wp\/v2\/tags?post=3180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}