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计算三维矢量幅度的方法
Jun 15 Python
Python探索之pLSA实现代码
Oct 25 Python
深入理解Python分布式爬虫原理
Nov 23 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 Python
Python实现登陆文件验证方法
Oct 06 Python
使用Scrapy爬取动态数据
Oct 21 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
Python数据正态性检验实现过程
Apr 18 Python
jenkins+python自动化测试持续集成教程
May 12 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的引用计数机制
2013/06/14 PHP
在PHP中使用redis
2013/11/04 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
php学习笔记之基础知识
2014/11/08 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
python使用pil生成缩略图的方法
2015/03/26 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
Python列表推导式实现代码实例
2020/09/09 Python
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
运动会入场口号
2014/06/07 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
日语专业求职信
2014/07/04 职场文书
借名购房协议书范本
2014/10/06 职场文书
2015年三万活动总结
2015/03/25 职场文书
民间借贷借条范本
2015/05/25 职场文书
党小组考察意见
2015/06/02 职场文书
警示教育片观后感
2015/06/17 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang