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下尝试多线程编程
Apr 28 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
Python实现统计代码行的方法分析
Jul 12 Python
Python之多线程爬虫抓取网页图片的示例代码
Jan 10 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
Python登录注册验证功能实现
Jun 18 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
Python实现针对json中某个关键字段进行排序操作示例
Dec 25 Python
Java文件与类动手动脑实例详解
Nov 10 Python
keras中的loss、optimizer、metrics用法
Jun 15 Python
用Python实现一个打字速度测试工具来测试你的手速
May 28 Python
Python3.10的一些新特性原理分析
Sep 15 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支持断点续传的源码
2010/05/16 PHP
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
2013/06/06 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
学习PHP session的传递方式
2016/06/15 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
Python 模拟登陆的两种实现方法
2017/08/10 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
阿里云ECS服务器部署django的方法
2019/08/29 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
python破解同事的压缩包密码
2020/10/14 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
2015年党员干部承诺书
2015/01/21 职场文书
运动会主持词大全
2015/07/02 职场文书
毕业典礼致辞
2015/07/29 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
docker-compose部署Yapi的方法
2022/04/08 Servers
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript