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


Posted in Python onMarch 21, 2015

本文实例讲述了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)
Python 相关文章推荐
py2exe 编译ico图标的代码
Mar 08 Python
Python三级目录展示的实现方法
Sep 28 Python
Python编写一个闹钟功能
Jul 11 Python
浅谈机器学习需要的了解的十大算法
Dec 15 Python
Python实现读取Properties配置文件的方法
Mar 29 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
浅析python内置模块collections
Nov 15 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
用PYTHON去计算88键钢琴的琴键频率和音高
Apr 10 Python
Python去除列表中重复元素的方法
Mar 20 #Python
python在windows下实现ping操作并接收返回信息的方法
Mar 20 #Python
Python实现微信公众平台自定义菜单实例
Mar 20 #Python
python在windows和linux下获得本机本地ip地址方法小结
Mar 20 #Python
python使用三角迭代计算圆周率PI的方法
Mar 20 #Python
Cpy和Python的效率对比
Mar 20 #Python
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 #Python
You might like
深入掌握include_once与require_once的区别
2013/06/17 PHP
php之readdir函数用法实例
2014/11/13 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
移动节点的jquery代码
2014/01/13 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
聊聊Vue.js的template编译的问题
2017/10/09 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
微信小程序wepy框架笔记小结
2018/08/08 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
python安装twisted的问题解析
2018/08/21 Python
python通过zabbix api获取主机
2018/09/17 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
金蝶的一道SQL笔试题
2012/12/18 面试题
优秀导游先进事迹材料
2014/01/25 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书