snippet-python

正则match domain

import re
from urlparse import urlparse
topHostPostfix = (
    '.com','.la','.io','.co','.info','.net','.org','.me','.mobi',
    '.us','.biz','.xxx','.ca','.co.jp','.com.cn','.net.cn',
    '.org.cn','.mx','.tv','.ws','.ag','.com.ag','.net.ag',
    '.org.ag','.am','.asia','.at','.be','.com.br','.net.br',
    '.bz','.com.bz','.net.bz','.cc','.com.co','.net.co',
    '.nom.co','.de','.es','.com.es','.nom.es','.org.es',
    '.eu','.fm','.fr','.gs','.in','.co.in','.firm.in','.gen.in',
    '.ind.in','.net.in','.org.in','.it','.jobs','.jp','.ms',
    '.com.mx','.nl','.nu','.co.nz','.net.nz','.org.nz',
    '.se','.tc','.tk','.tw','.com.tw','.idv.tw','.org.tw',
    '.hk','.co.uk','.me.uk','.org.uk','.vg', ".com.hk")

regx = r'[^\.]+('+'|'.join([h.replace('.',r'\.') for h in topHostPostfix])+')$'
pattern = re.compile(regx,re.IGNORECASE)

def getDomain(str):
    parts = urlparse(str)
    host = parts.netloc
    m = pattern.search(host)
    res =  m.group() if m else host
    if not res:
        return ''
    else:
        return res

if __name__ == '__main__':
    getDomain('http://fasdf.com/asdfasd?asdf/!#ahsdjhfk&afjsdhfka')

简单邮件发送

# -*- coding: utf-8 -*-
# python 发邮件简单demo, 只有安装了sendmail才能work
from os import path
import sys
import subprocess
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import os


def send_mail(sender, receiver, title, body):
    msg = MIMEMultipart()
    msg['From'] = sender
    msg['To'] = receiver
    msg['Subject'] = title
    msg.attach(MIMEText(body,'html','utf-8'))

    #send 调用了系统的/usr/lib/sendmail 发邮件
    proc = subprocess.Popen(['/usr/lib/sendmail','-t'],stdin = subprocess.PIPE)
    proc.stdin.write(str(msg))
    proc.stdin.close()

def main():
    sender = 'xsb_test@test.com'
    date = os.popen('date').read()
    title = 'xsb test mail'
    receiver = 'xishengbo@baidu.com'
    body = '<h1>fuck you</h1>'
    send_mail(sender, receiver, title, body)


if __name__ == '__main__':
    main()

字符串trim 操作

>>> str = ' fuck___you '
>>> str.strip()
'fuck___you'
>>> str.lstrip()
'fuck___you '
>>> str.rstrip()
' fuck___you'
>>>

简单的 server 回应 GET 和 POST

import SimpleHTTPServer  
import SocketServer  
import re  

def htc(m):  
    return chr(int(m.group(1),16))  

def urldecode(url):  
    rex=re.compile('%([0-9a-hA-H][0-9a-hA-H])',re.M)  
    return rex.sub(htc,url)  

class SETHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):  
    def createHTML(self):  
        html = file("index.html", "r")  
        for line in html:  
            self.wfile.write(line)  

    def do_GET(self):  
        print "GET"  
        print self.headers;  
        self.createHTML()  

    def do_POST(self):  
        print "POST"  
        print self.headers;  
        length = int(self.headers.getheader('content-length'))  
        qs = self.rfile.read(length)  
        url=urldecode(qs)  
        print "url="  
        print url  
        self.createHTML()  

Handler = SETHandler  
PORT = 8000  
httpd = SocketServer.TCPServer(("", PORT), Handler)  
print "serving at port", PORT  
httpd.serve_forever()

results matching ""

    No results matching ""