python中django框架通过正则搜索页面上email地址的方法

本文实例讲述了python中django框架通过正则搜索页面上email地址的方法。分享给大家供大家参考。具体实现方法如下:

import re
from django.shortcuts import render
from pattern.web import URL, DOM, abs, find_urls
def index(request):
 """
 find email addresses in requested url or contact page
 """
 error = ''
 emails = set()
 url_string = request.GET.get('url', '')
 EMAIL_REGEX = re.compile(r'[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}', re.IGNORECASE)
 # use absolute url or domain name
 url = URL(url_string) if url_string.startswith('http') else URL(domain=url_string,protocol='http')
 if url_string:
 try:
  dom = DOM(url.download(cached=True))
 except Exception, e:
  error = e
 else:
  contact_urls = { url.string }
  # search links of contact page
  for link in dom('a'):
  if re.search(r'contact|about', link.source, re.IGNORECASE):
   contact_urls.add(
   abs(link.attributes.get('href',''), base=url.redirect or url.string))
  for contact_url in contact_urls:
  # download contact page
  dom = DOM(URL(contact_url).download(cached=True))
  # search emails in the body of the page
  for line in dom('body')[0].content.split('\n'):
   found = EMAIL_REGEX.search(line)
   if found:
   emails.add(found.group())
 data = {
 'url': url_string,
 'emails': emails,
 'error': error,
 }
 return render(request, 'index.html', data)

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

希望本文所述对大家的Python程序设计有所帮助。

(0)

相关推荐

  • Python使用email模块对邮件进行编码和解码的实例教程

    解码邮件 python自带的email模块是个很有意思的东西,它可以对邮件编码解码,用来处理邮件非常好用. 处理邮件是一个很细致的工作,尤其是解码邮件,因为它的格式变化太多了,下面先看看一个邮件的源文件: Received: from 192.168.208.56 ( 192.168.208.56 [192.168.208.56] ) by ajax-webmail-wmsvr37 (Coremail) ; Thu, 12 Apr 2007 12:07:48 +0800 (CST) Date:

  • Python使用QQ邮箱发送Email的方法实例

    前言 其实Python使用QQ邮箱发送Email代码很简单,短短几行代码就可以实现这个功能. 使用到的模块有smtplib和email这个两个模块,关于这两个模块的方法就不多说了.不了解的朋友们可以查看这篇文章:python中使用smtplib和email模块发送邮件实例 我们先说说网上常用的使用这那两个模块发送邮件的方法 代码如下: import smtplib from email.mime.text import MIMEText from email.header import Head

  • Python发送email的3种方法

    python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现. 先把几个最简单的发送邮件方式记录下,像html邮件,附件等也是支持的,需要时查文档即可 1.登录邮件服务 复制代码 代码如下: #!/usr/bin/env python  # -*- coding: utf-8 -*-  #python2.7x  #send_simple_ema

  • Python发送Email方法实例

    本文以实例形式展示了Python发送Email功能的实现方法,有不错的实用价值的技巧,且功能较为完善.具体实现方法如下: 主要功能代码如下: #/usr/bin/env python # -*- encoding=utf-8 -*- import base64 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText class CCSendMail: de

  • 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)

    可以使用Python的email模块来实现带有附件的邮件的发送. SMTP (Simple Mail Transfer Protocol)邮件传送代理 (Mail Transfer Agent,MTA) 程序使用SMTP协议来发送电邮到接收者的邮件服务器.SMTP协议只能用来发送邮件,不能用来接收邮件.大多数的邮件发送服务器 (Outgoing Mail Server) 都是使用SMTP协议.SMTP协议的默认TCP端口号是25. SMTP协议的一个重要特点是它能够接力传送邮件.它工作在两种情况

  • Python实现发送email的几种常用方法

    学过Python的人都知道,实用Python实现发送email的功能还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现. 本文就把几个最简单的发送邮件方式记录下来,像html邮件,附件等也是支持的,读者在需要时可以参考查询一下.具体方法如下: 1.登录邮件服务 具体代码如下: #!/usr/bin/env python # -*- coding: utf-8

  • python中django框架通过正则搜索页面上email地址的方法

    本文实例讲述了python中django框架通过正则搜索页面上email地址的方法.分享给大家供大家参考.具体实现方法如下: import re from django.shortcuts import render from pattern.web import URL, DOM, abs, find_urls def index(request): """ find email addresses in requested url or contact page &quo

  • Python中Django框架利用url来控制登录的方法

    本文实例讲述了Python中Django框架利用url来控制登录的方法.分享给大家供大家参考.具体如下: from django.conf.urls.defaults import patterns,url #or use login_required from django.contrib.admin.views.decorators import staff_member_required def login_url(regex, view, *p,**args): """

  • Python中Django框架下的staticfiles使用简介

    django1.3新加入了一个静态资源管理的app,django.contrib.staticfiles.在以往的django版本中,静态资源的管理一向都是个问题.部分app发布的时候会带上静态资源文件,在部署的时候你必须手动从各个app中将这些静态资源文件复制到同一个static目录.在引入staticfiles后,你只需要执行./manage.py collectstatic就可以很方便的将所用到app中的静态资源复制到同一目录. staticfiles的引入,方便了django静态文件的管

  • 使用url_helper简化Python中Django框架的url配置教程

    django的url采用正则表达式进行配置,虽然强大却也广为诟病.反对者们认为django的url配置过于繁琐,且不支持默认的路由功能. 我倒觉得还好,只是如果觉得不爽,为什么不自己小小的hack一下,反正也就几行代码的事. 在这个背景下,我整了这个url_helper,利用url_helper可以简化配置和实现url的默认路由.所谓的url_helper其实就只有url_helper.py一个文件,使用的时候只想要import就可以. url_helper的具体用法请参考具体的例子: url_

  • Python中django学习心得

    以下是作者在学习Python中django框架时的学习笔记,并把测试的代码做了详细分析,最后还附上了学习心得,值得大家学习. URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. '''urlpatterns = [url(正则表达式, views视图函数,参数,别名),]参数说明:一个正则表达式字符串一个可调用对象,通常为一个视图函数或

  • Django框架首页和登录页分离操作示例

    本文实例讲述了Django框架首页和登录页分离操作.分享给大家供大家参考,具体如下: 1.登录模板login.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>用户登录</title> </head> <body> <form method="post&qu

  • pycharm中django框架连接mysql数据库的方法

    1.首先下载安装pymysql模块. pip install pymysql 如果出现 timeout 超时可以使用其他的资源下载: pip install 模块名 -i https://pypi.douban.com/simple 2.导入库 在项目的init文件中编写下列代码: # 导入pymysql模块 import pymysql pymysql.install_as_MySQLdb() 这样整个项目都能使用pymysql,就不用再每个文件都导入pymyqsl 3.在seeting.py

  • Python中Django与Echarts的结合用法图文详解

    目录 前言 什么是Echarts 选一个示例-简单的饼图 图形分析 前端核心代码分析 图形的生成基本步骤 django的操作 数据构造 渲染关键点 最终效果 稍复杂示例-河流图 图形分析 前端核心代码分析 django操作 数据构造 最终效果 添加示例没有的标题 添加时间轴的缩放 操控示例-获得没有示例的堆叠柱状图 其他 配色调整 数据拟合注意点 总结 前言 今天为大家分享Echarts在Python 的Django框架中的使用 项目仓库为https://gitcode.net/sabian2/

  • Python中Scrapy框架的入门教程分享

    目录 前言 安装Scrapy 创建一个Scrapy项目 创建一个爬虫 运行爬虫 结论 前言 Scrapy是一个基于Python的Web爬虫框架,可以快速方便地从互联网上获取数据并进行处理.它的设计思想是基于Twisted异步网络框架,可以同时处理多个请求,并且可以使用多种处理数据的方式,如提取数据.存储数据等. 本教程将介绍如何使用Scrapy框架来编写一个简单的爬虫,从而让您了解Scrapy框架的基本使用方法. 安装Scrapy 首先,您需要在您的计算机上安装Scrapy框架.您可以使用以下命

  • Python使用django框架实现多人在线匿名聊天的小程序

    最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗口,代表一个用户): http://zhaozhaoli.vicp.io/chatroom/happy/ 移动端聊天效果图: 网页版聊天效果图: 实现思路: 发送的消息通过ajax先写入数据库,通过ajax的循环请求,将写入数据库的消息显示到前端界面. 前端核心代码: <script> $(fun

随机推荐