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实现socket客户端和服务端简单示例
Feb 24 Python
python实现绘制树枝简单示例
Jul 24 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
python实现抽奖小程序
Apr 15 Python
python用quad、dblquad实现一维二维积分的实例详解
Nov 20 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
python中adb有什么功能
Jun 07 Python
Python入门基础之数字字符串与列表
Feb 01 Python
python之基数排序的实现
Jul 26 Python
python内置模块之上下文管理contextlib
Jun 14 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
Discuz! Passport 通行证整合
2008/03/27 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
php中拷贝构造函数、赋值运算符重载
2012/07/25 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
js constructor的实际作用分析
2011/11/15 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
JS原型链怎么理解
2016/06/27 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
python 切片和range()用法说明
2013/03/24 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
Python 3 判断2个字典相同
2019/08/06 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
《金子》教学反思
2014/04/13 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript