python常用
获取当前时间
def getNowTime():
currenttime=datetime.datetime.now()
res=currenttime.strftime("%Y_%m_%d")
return res
时间戳转换:
def datetime_timestamp(dt):
dt=dt.replace('年','-').replace('月','-').replace('日','')
if len(re.findall('^\d+-\d+-\d+$', dt)) == 0 :
dt = '2019-05-19'
else:
dt=dt
# 中间过程,一般都需要将字符串转化为时间数组
###time.strptime(dt, '%Y-%m-%d %H:%M:%S')
time.strptime(dt, '%Y-%m-%d')
## time.struct_time(tm_year=2012, tm_mon=3, tm_mday=28, tm_hour=6, tm_min=53, tm_sec=40, tm_wday=2, tm_yday=88, tm_isdst=-1)
# 将"2012-03-28 06:53:40"转化为时间戳
###s = time.mktime(time.strptime(dt, '%Y-%m-%d %H:%M:%S'))
s = time.mktime(time.strptime(dt, '%Y-%m-%d'))
return int(s)
正则:
def getdate(html): reg = (r'<div id="date">(.*?)<b>') listre = re.compile(reg) mylist = re.findall(listre, html) mylist = mylist[0] return mylist
常用引用:
# coding=utf-8
import time
from selenium import webdriver
import sys
import ssl
import urllib2
import re
from PIL import Image
import cStringIO
import requests
reload(sys)
sys.setdefaultencoding("utf-8")
ssl._create_default_https_context = ssl._create_unverified_context
requests.packages.urllib3.disable_warnings()
验证码识别获取:
def getvcode():
burp0_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0; Waterfox) Gecko/20100101 Firefox/56.2.5", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en-US,en;q=0.5", "Accept-Encoding": "gzip, deflate", "Connection": "close", "Upgrade-Insecure-Requests": "1"}
url = 'http://127.0.0.1:7779/api'
#imgurl='http://=%s' % username
imgurl ='http://127.0.0.1/vcode_test/vcode.png'
# imgtxt2=urllib2.urlopen(imgurl).read()
#print 'code name is :', username
#print imgurl
request1 = urllib2.Request(imgurl,headers=burp0_headers)
response = urllib2.urlopen(request1)
imgtxt2 = response.read()
# print imgtxt2
imgtxt = cStringIO.StringIO(imgtxt2)
postdata = imgtxt
html = requests.post(url, data=postdata, timeout=20)
mynum = (html.text)
#print mynum
#mynum= html.text.replace('S','5').replace('L','1').replace('I','1').replace('T','7').replace('X','4').replace('F','1').replace('Z','2')
with open('Pic\\{}.{}'.format(str(mynum)+'-', 'jpg'), 'wb') as f:
f.write(str(imgtxt2))
return mynum
本地验证码获读取:
def getvcode_local(str,r,h):
url='http://127.0.0.1:7779/api'
img=Image.open('vcode.png')
imgtxt2=img.resize((int(r),int(h)),Image.BILINEAR)
print imgtxt2
imgtxt = cStringIO.StringIO(imgtxt2)
postdata=imgtxt
html=requests.post(url,data=postdata,timeout=5)
mynum=(html.text)
print mynum
#mynum= html.text.replace('S','5').replace('L','1').replace('I','1').replace('T','7').replace('X','4').replace('F','1').replace('Z','2')
base64数据转图片:
# -*- coding: utf-8 -*-
import re
import base64
from cStringIO import StringIO
from PIL import Image
def base64_to_image(base64_str, image_path=None):
base64_data = re.sub('^data:image/.+;base64,', '', base64_str)
binary_data = base64.b64decode(base64_data)
img_data = StringIO(binary_data)
img = Image.open(img_data)
if image_path:
img.save(image_path)
return img
打印表格:
#coding:utf8 import prettytable as pt def main(): tb = pt.PrettyTable() tb.field_names = ["用户名","时间","URI","地址","文件名"] for i in range(1,10,1): tb.add_row([i,'time','uri','addres','filename']) print tb if __name__ == '__main__': main()
HTML转换为PDF:
def validateTitle(title):
""" 将 title 名字 规则化
:param title: title name 字符串
:return: 文件命名支持的字符串
"""
rstr = r"[\=\(\)\,\/\\\:\*\?\"\<\>\|\' ']" # '= ( ) , / \ : * ? " < > | ' 还有空格
new_title = re.sub(rstr, "_", title) # 替换为下划线
return new_title
# options = {
# 'animation': 'false', #导出PDF一定要设置,否则显示不全
#
# }
options = {
'page-size': 'A4',
'margin-top': '0mm',
'margin-right': '0mm',
'margin-bottom': '0mm',
'margin-left': '0mm',
# 'orientation':'Landscape',#横向
'encoding': "UTF-8",
'no-outline': None,
'animation':'false',
# 'footer-right':'[page]' 设置页码
}
#session = requests.session()
confg = pdfkit.configuration(wkhtmltopdf=r'wkhtmltopdf\bin\wkhtmltopdf.exe')
# 这里指定一下wkhtmltopdf的路径
readFile = open('url.txt','r',encoding='utf8')
urlList = []
for lines in readFile.readlines():
urlList.append(lines.strip())
for u in urlList:
# try:
print(u)
name = (get_con(u)[1]+'_'+get_con(u)[0])
print('正在将{}网页转为PDF'.format(name))
time.sleep(2)
strCMD = r'wkhtmltopdf\\bin\\wkhtmltopdf.exe --disable-smart-shrinking "%s" %s.pdf' % (u,validateTitle(name))
print(strCMD)
os.popen(strCMD)
进制转换:
def str_to_hex(s):
return r"/x"+r'/x'.join([hex(ord(c)).replace('0x', '') for c in s])
def hex_to_str(s):
return ''.join([chr(i) for i in [int(b, 16) for b in s.split(r'/x')[1:]]])
def str_to_bin(s):
return ' '.join([bin(ord(c)).replace('0b', '') for c in s])
def bin_to_str(s):
return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])
获取当前文件名:
#coding:utf8 import requests import os import sys
#打印绝对目录 print sys.argv print sys.argv[0]
#打印当前文件名 print os.path.basename(sys.argv[0]) print os.path.basename(__file__)
#打印绝对目录 print os.getcwd()
浙公网安备 33010602011771号