开始前的例行叨叨:
长期记录一些别人脚本里看到的,提升效率的姿势,容易忘记的用法。
在需要爆破的时候,不需要手打字符集。
>>> import string
>>> string.letters
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
>>> string.digits
'0123456789'
利用itertools库生成笛卡尔积,从此不用无尽for循环!!!
因为生成的 i 对象是元组('a', 'b')
所以用 ''.join(i) 把它拼成需要爆破的字符串
>>> import itertools
>>> for i in itertools.product('abcdefg', repeat = 2):
print ''.join(i)
aa
ab
ac
ad
ae
af
ag
ba
bb
此外,还可以对两个数组、元组、字符串进行排列组合
>>> a = 'abcd'
>>> b = '123'
>>> for i in itertools.product(a,b):
print ''.join(i)
a1
a2
a3
b1
b2
b3
c1
c2
c3
d1
d2
d3
检测开头可以用
'abcde'.startswith('ab')
返回值是True或False
检测中间用 'abcde'.find('xxx') >= 0
-1是找不到
若已定义编码:
# -*- coding: cp936 -*-
就用:
new_dir = new_dir + '中文.txt'.decode('cp936')
若从网络获取,先解码utf-8再尝试编码gb2312
os.getcwd()
获取当前路径
allFileList = []
for root, dirs, files in os.walk(os.getcwd()):
for i in files:
if i.endswith('.html'):
allFileList.append(root + "\\" + i)
可以获取路径下所有.html文件
注意,一次for i in files 这个files列表是第一层子目录下的所有文件
第一层的for xxx in os.walk每次返回逐渐加深的子目录层
root获取到的是本层的路径
dirs获取到的是本层目录内所有文件夹名
files获取到本层所有文件名列表
os.path.basename('C:\\aa\\bb\\cc.txt')
能获取到cc.txt 也就是纯文件名
os.path.splitext('abc.txt')
获得一个['abc', 'txt']
可以得到后缀,或不含后缀的文件名
根据值排序,从大到小:
for key in sorted(pList, key = pList.__getitem__, reverse = True):
print(key + ' : ' + str(pList[key]))
从数组中随机选一项,不需要随机出一个序号,再从数组中取了。
也可以对string字符串random.choice
>>> import random
>>> sz = ['x1','x2','x3','x4']
>>> random.choice(sz)
'x2'
设置随机种子后,连续的随机结果会一致。
>>> random.seed(1)
>>> random.randint(1,100)
14
>>> random.randint(1,100)
85
>>> random.seed(1)
>>> random.randint(1,100)
14
>>> random.randint(1,100)
85
range能返回一个List数组,可以
sz = range(1, 100)
会得到1,2,...99的序列
但xrange(1, 100)只能得到一个xrange对象
用法只能
for i in xrange(1, 100):
print i
这种方法可以打包成1个exe,不需要整个文件夹里一大堆东西带着走。
而且在打包requests库进行https时不出证书报错。
(详情:https://blog.csdn.net/publicstr/article/details/80083494)
方法:
pip install pyinstaller
在python27/script/目录下会生成pyinstaller.exe
所需的环境变量目录和pip是同一个目录,只要能用pip就可以在cmd中用pyinstaller命令
pyinstaller -F xxx.py
其中-F参数表示打包成一个exe
exe生成的路径在输出中找
需要安装py2exe
但pip install py2exe会出错,提示为python3版本
2.7下载py2exe地址为:
https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win64-py2.7.amd64.exe/download
下载的exe直接安装
打包方法:
创建create.py
from distutils.core import setup
import py2exe
setup(console=["xxxx.py"])
把xxxx.py改为要打包的python文件名,放在同一目录下,CMD执行
python create.py py2exe
生成的dist目录整个带走即可。
先pip安装
pip install BeautifulSoup4
pip install html5lib
引入soup:
from bs4 import BeautifulSoup
把获取的html创建soup对象
soup = BeautifulSoup(html, 'html5lib')
可以print
soup.title.text
soup.title.name
soup.body.text
soup.get_text()
pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
只需要在后面加-i参数 指定国内源即可