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 18 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python基于正则表达式实现文件内容替换的方法
Aug 30 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 Python
一看就懂得Python的math模块
Oct 21 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
解决Pytorch训练过程中loss不下降的问题
Jan 02 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
python mysql中in参数化说明
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面向对象中的魔术方法中文说明
2014/03/04 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
python删除列表内容
2015/08/04 Python
python语言使用技巧分享
2016/05/31 Python
Python中functools模块的常用函数解析
2016/06/30 Python
Django logging配置及使用详解
2019/07/23 Python
python如何从键盘获取输入实例
2020/06/18 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
德国高尔夫商店:Par71.de
2020/11/29 全球购物
制定岗位职责的原则
2013/11/08 职场文书
主办会计岗位职责
2014/03/13 职场文书
教师演讲稿开场白
2014/08/25 职场文书
出租房屋协议书
2014/09/14 职场文书
信访工作汇报材料
2014/10/27 职场文书
经理助理岗位职责
2015/02/02 职场文书
迎国庆主题班会
2015/08/17 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
浅谈golang 中time.After释放的问题
2021/05/05 Golang
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫