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 相关文章推荐
python文件和目录操作函数小结
Jul 11 Python
python绘制多个曲线的折线图
Mar 23 Python
Python基于opencv实现的简单画板功能示例
Mar 04 Python
详解python中递归函数
Apr 16 Python
python ChainMap的使用和说明详解
Jun 11 Python
使用 Supervisor 监控 Python3 进程方式
Dec 05 Python
matlab中imadjust函数的作用及应用举例
Feb 27 Python
python实现图片素描效果
Sep 26 Python
Python绘制地图神器folium的新人入门指南
May 23 Python
python通过函数名调用函数的几种方法总结
Jun 07 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 Python
Python使用pyecharts控件绘制图表
Jun 05 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
PHP登录验证码的实现与使用方法
2016/07/07 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
python中私有函数调用方法解密
2016/04/29 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
廉政教育心得体会
2014/01/01 职场文书
教师产假请假条范文
2014/04/10 职场文书
企业负责人任命书
2014/06/05 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
土地转让协议书
2014/09/27 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
会计师事务所实习证明
2014/11/16 职场文书
保研推荐信范文
2015/03/25 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP