Ⅰ python里面如何判断一个邮箱地址是否存在(非邮件格式是否合法)
是否真实存在 而不是随便写一个格式正确的地址 存在则可以提交注册 不存在则要提示 ... 或者字符串里有邮件地址里不允许包含的字符。favormm的博客分享了判断邮箱是否合法
Ⅱ Python 怎么管理邮箱的文件夹
先进入到python的命令行中。这是首选的条件,你必须要安装相关的程序环境才可以。
.导入下相关的imaplib的环境,这个表示,使用的IMAP的模式来进行管理。POP3 是表示仅下载邮件,并不具备管理文件夹的权限。
然后你可以使用IMAP4 就是正常的模式 ,不带有SSL方式进行操作。就是m=imaplib.IMAP4(‘imap服务器地址’)也可以使用SSL的模式 ,m=imaplib.IMAP4_SSL(‘IMAP服务器地址’)
即使已经连接到了服务器,那么你就可以进行登陆验证了。可以使用m=imaplib.login(‘用户名’,’密码’)进行登陆。提示login completed表示登陆成功!
.如果有imaplib.error表示登陆失败了!
登陆成功则可以进行相关的文件夹管理了。m.list() 则可以直接查看到现在有 那些文件夹了。
下面可以直接使用for 语句直接循环出来。
可以使用m.create(‘文件夹名称’)进行创建
.m.delete(‘文件夹名称’)进行删除
你可以利用上面的相关的知识,你就可以做一个进行文件夹权限管理的知识了。
Ⅲ 如何用 Python 爬取需要登录的网站
步骤一:研究该网站
打开登录页面
进入以下页面 “bitbucket.org/account/signin”。你会看到如下图所示的页面(执行注销,以防你已经登录)
仔细研究那些我们需要提取的详细信息,以供登录之用
在这一部分,我们会创建一个字典来保存执行登录的详细信息:
1. 右击 “Username or email” 字段,选择“查看元素”。我们将使用 “name” 属性为 “username” 的输入框的值。“username”将会是 key 值,我们的用户名/电子邮箱就是对应的 value 值(在其他的网站上这些 key 值可能是 “email”,“ user_name”,“ login”,等等)。
2. 右击 “Password” 字段,选择“查看元素”。在脚本中我们需要使用 “name” 属性为
“password” 的输入框的值。“password” 将是字典的 key 值,我们输入的密码将是对应的 value
值(在其他网站key值可能是 “userpassword”,“loginpassword”,“pwd”,等等)。
3. 在源代码页面中,查找一个名为 “csrfmiddlewaretoken” 的隐藏输入标签。“csrfmiddlewaretoken”
将是 key 值,而对应的 value 值将是这个隐藏的输入值(在其他网站上这个 value 值可能是一个名为 “csrftoken”,“ authenticationtoken” 的隐藏输入值)。列如:“”。
最后我们将会得到一个类似这样的字典:
Python
payload = {
"username": "<USER NAME>",
"password": "<PASSWORD>",
"csrfmiddlewaretoken": "<CSRF_TOKEN>"
}
1
2
3
4
5
payload = {
"username": "<USER NAME>",
"password": "<PASSWORD>",
"csrfmiddlewaretoken": "<CSRF_TOKEN>"
}
请记住,这是这个网站的一个具体案例。虽然这个登录表单很简单,但其他网站可能需要我们检查浏览器的请求日志,并找到登录步骤中应该使用的相关的 key 值和 value 值。
步骤2:执行登录网站
对于这个脚本,我们只需要导入如下内容:
Python
import requests
from lxml import html
1
2
import requests
from lxml import html
首先,我们要创建 session 对象。这个对象会允许我们保存所有的登录会话请求。
Python
session_requests = requests.session()
1
session_requests = requests.session()
第二,我们要从该网页上提取在登录时所使用的 csrf 标记。在这个例子中,我们使用的是 lxml 和 xpath 来提取,我们也可以使用正则表达式或者其他的一些方法来提取这些数据。
Python
login_url = "https://bitbucket.org/account/signin/?next=/"
result = session_requests.get(login_url)
tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]
1
2
3
4
5
login_url = "https://bitbucket.org/account/signin/?next=/"
result = session_requests.get(login_url)
tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]
**更多关于xpath 和lxml的信息可以在这里找到。
接下来,我们要执行登录阶段。在这一阶段,我们发送一个 POST 请求给登录的 url。我们使用前面步骤中创建的 payload 作为 data 。也可以为该请求使用一个标题并在该标题中给这个相同的 url 添加一个参照键。
Python
result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)
1
2
3
4
5
result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)
步骤三:爬取内容
现在,我们已经登录成功了,我们将从 bitbucket dashboard 页面上执行真正的爬取操作。
Python
url = 'https://bitbucket.org/dashboard/overview'
result = session_requests.get(
url,
headers = dict(referer = url)
)
1
2
3
4
5
url = 'https://bitbucket.org/dashboard/overview'
result = session_requests.get(
url,
headers = dict(referer = url)
)
为了测试以上内容,我们从 bitbucket dashboard 页面上爬取了项目列表。我们将再次使用
xpath 来查找目标元素,清除新行中的文本和空格并打印出结果。如果一切都运行 OK,输出结果应该是你 bitbucket 账户中的
buckets / project 列表。
Python
tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class='repo-name']/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]
print bucket_names
1
2
3
4
5
tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class='repo-name']/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]
print bucket_names
你也可以通过检查从每个请求返回的状态代码来验证这些请求结果。它不会总是能让你知道登录阶段是否是成功的,但是可以用来作为一个验证指标。
例如:
Python
result.ok # 会告诉我们最后一次请求是否成功
result.status_code # 会返回给我们最后一次请求的状态
1
2
result.ok # 会告诉我们最后一次请求是否成功
result.status_code # 会返回给我们最后一次请求的状态
就是这样。
Ⅳ 请问如何用python将某个邮箱未读邮件全部转发到另一个邮箱
首先了解SMTP(简单邮件传输协议),邮件传送代理程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送邮件,不能用来接收邮件,而大多数的邮件发送服务器都是使用SMTP协议。SMTP协议的默认TCP端口号是25。
本文主要介绍利用'smtplib','email'两个模块来实现邮件的发送,可以如下查看两个模块的函数和方法:
smtplib模块简介:
smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
此为SMTP类构造函数,表示与SMTP服务器之间的连接,并根据这个连接向smtp服务器发送指令,执行相关操作(如:登陆、发送邮件),且每个参数都是可选的。
其中最重要的参数:
host:smtp服务器主机名
port:smtp服务的端口,默认是25;
如果在创建SMTP对象的时候提供了这两个参数,在初始化的时候会自动调用connect方法去连接服务器。
smtplib.SMTP还提供了如下方法:
SMTP.set_debuglevel(level):设置是否为调试模式
SMTP.connect([host[, port]]):连接到指定的smtp服务器。参数分别表示 smpt主机和端口。
SMTP.docmd(cmd[, argstring]):向smtp服务器发送指令。
SMTP.helo([hostname]) :使用"helo"指令向服务器确认身份。
SMTP.login(user, password):登陆到smtp服务器。现在几乎所有smtp服务器,都必须在验证用户信息合法之后才允许发送邮件。(重要!)
SMTP.sendmail(from_addr,to_addrs,msg[,mail_options,rcpt_options]):发送邮件。这里要注意一下第三个参数,msg是字符串,表示邮件。我们知道邮件一般由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意msg的格式。这个格式就是smtp协议中定义的格式。SMTP.quit() :断开与smtp服务器的连接,相当于发送"quit"指令。(重要!)
常用的函数方法:
email模块
1.class email.message.Message
__getitem__,__setitem__实现obj[key]形式的访问。
Msg.attach(playload): 向当前Msg添加playload。
Msg.set_playload(playload):
Msg.add_header(_name, _value, **_params): 添加邮件头字段。
2.class email.mime.base.MIMEBase(_maintype, _subtype, **_params)
所有MIME类的基类,是email.message.Message类的子类。
3.class email.mime.multipart.MIMEMultipart()
在3.0版本的email模块 (Python 2.3-Python 2.5) 中,这个类位于email.MIMEMultipart.MIMEMult ipart。这个类是MIMEBase的直接子类,用来生成包含多个部分的邮件体的MIME对象。
4.class email.mime.text.MIMEText(_text)
使用字符串_text来生成MIME对象的主体文本。
获得所需要使用的邮箱的host地址和port端口号,(本文使用的是163邮箱,对应的smtp服务器地址:mail.163.com,端口号25)
常用邮箱的smtp服务器地址和端口号如图:
编写程序如下:
#! /usr/bin/env python
import smtpli
from email.mime.text import MIMEText
mailto_list=['[email protected]'] #收件人(列表)
mail_host="smtp.163.com" #使用的邮箱的smtp服务器地址
mail_user="name" #用户名
mail_pass="pwd" #密码
mail_postfix="postfix" #邮箱的后缀
def send_mail(to_list,sub,content):
me="hello"+"<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(content,_subtype='plain')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list) #将收件人列表以‘;’分隔
try:
server = smtplib.SMTP()
server.connect(mail_host) #连接服务器
server.login(mail_user,mail_pass) #登录操作
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
except Exception, e:
print str(e)
return False
for i in range(5): #发送五封,不过会被拦截的。。。
if send_mail(mailto_list,"hello","haha!"): #邮件主题和邮件内容
print "done!"
else:
print "failed!"
最后,可以运行编写的py文件,可以得到如图所是的结果,代表邮件发送成功。
这样,就能成功实现用Python发送邮件啦!
Ⅳ 学习python必备的基础知识
python作为当下最热门的计算机编程语言之一,是许多互联网大厂(如阿里腾讯等)在招聘时会作出要求的能力之一。学好python对于将来大数据方向、云计算方向等物联网时代新兴岗位的学习很有帮助。
想要学习Python,需要掌握的内容还是比较多的,对于自学的同学来说会有一些难度,不推荐自学能力差的人。我们将学习的过程划分为4个阶段,每个阶段学习对应的内容,具体的学习顺序如下:
Python学习顺序:
①Python软件开发基础
掌握计算机的构成和工作原理
会使用Linux常用工具
熟练使用Docker的基本命令
建立Python开发环境,并使用print输出
使用Python完成字符串的各种操作
使用Python re模块进行程序设计
使用Python创建文件、访问、删除文件
掌握import 语句、From…import 语句、From…import* 语句、方法的引用、Python中的包
②Python软件开发进阶
能够使用Python面向对象方法开发软件
能够自己建立数据库,表,并进行基本数据库操作
掌握非关系数据库MongoDB的使用,掌握Redis开发
能够独立完成TCP/UDP服务端客户端软件开发,能够实现ftp、http服务器,开发邮件软件
能开发多进程、多线程软件
③Python全栈式WEB工程师
能够独立完成后端软件开发,深入理解Python开发后端的精髓
能够独立完成前端软件开发,并和后端结合,熟练掌握使用Python进行全站Web开发的技巧
④Python多领域开发
能够使用Python熟练编写爬虫软件
能够熟练使用Python库进行数据分析
招聘网站Python招聘职位数据爬取分析
掌握使用Python开源人工智能框架进行人工智能软件开发、语音识别、人脸识别
掌握基本设计模式、常用算法
掌握软件工程、项目管理、项目文档、软件测试调优的基本方法
想要系统学习,你可以考察对比一下开设有IT专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能,南京北大青鸟、中博软件学院、南京课工场等都是不错的选择,建议实地考察对比一下。
祝你学有所成,望采纳。
Ⅵ Python 在国内的应用领域有哪些
Python的应用领域包括但不限于数据挖掘、科学计算、图像处理及人工智能。
Python可以用到的场景非常多,也正是因为Python的万能属性,所以学习Python的朋友也特别多。对于零基础学生而言,Python代码简单易懂,不需要有计算机基础也能上手,又因为其编写的程序可维护性很高,所以在职程序员也喜欢使用Python。
目前南京课工场的课程体系内同样涵盖了Python语言,内容主要包括:
Python编程、Python数据爬取、Python数据采集、整理与清洗、Python机器、PySpark。