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正则表达式知识汇总
Sep 22 Python
用不到50行的Python代码构建最小的区块链
Nov 16 Python
python3判断url链接是否为404的方法
Aug 10 Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
对dataframe数据之间求补集的实例详解
Jan 30 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
Numpy中np.max的用法及np.maximum区别
Nov 27 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 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中一个控制字符串输出的函数
2006/10/09 PHP
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
javascript 播放器 控制
2007/01/22 Javascript
jquery遍历input取得input的name
2009/04/27 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
2010/06/19 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
微信小程序swiper实现文字纵向轮播提示效果
2020/01/21 Javascript
Python subprocess模块学习总结
2014/03/13 Python
对于Python装饰器使用的一些建议
2015/06/03 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
python实现简易淘宝购物
2019/11/22 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
请介绍一下WSDL的文档结构
2013/03/17 面试题
冰淇淋开店创业计划书
2014/02/01 职场文书
干部作风建设工作总结
2014/10/29 职场文书
公务员年度考核评语
2014/12/31 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
2015年工程师工作总结
2015/04/30 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
中学总务处工作总结
2015/08/12 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
mysql left join快速转inner join的过程
2021/06/30 MySQL
Java 在生活中的 10 大应用
2021/11/02 Java/Android