随便翻一下谷歌浏览器调试工具(F12)执行过的脚本,摘几个贴一下。
Gitee GVP
导出 GVP 项目列表,做个参考。
var jqEleProjects = $("#gvp-index-segment > div.ui.four.cards.all-projects > div > div.content.description-content");
var projects = {};
var languages = {};
var types = {};
jqEleProjects.each(function () {
var name = $(this).find("h3 > a").text();
var url = $(this).find("h3 > a").attr("href");
var type = $(this).find("div > div > div:nth-child(1)").text();
var language = $(this).find("div > div > div:nth-child(2)").text();
projects[name] = { name: name, url: url, type: type, language: language };
if (!languages.hasOwnProperty(language)) {
languages[language] = [];
}
languages[language].push(name);
if (!types.hasOwnProperty(type)) {
types[type] = [];
}
types[type].push(name);
// console.log(name + ' - ' + type + ' - ' + language + ' - ' + url);
});
console.log(projects);
console.log(languages);
console.log(types);
API 测试时先调登录接口
xhr = new XMLHttpRequest();
xhr.open("post", "http://localhost:9996/login", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("username=markjour&password=123456");
heidiSQL 找回数据库密码
get database password from heidisql settings file
有个配置文件,就在 heidisql 安装目录下,叫 settings.txt,自己找找。
function heidiDecode(hex) {
var str = "";
var shift = parseInt(hex.substr(-1));
hex = hex.substr(0, hex.length - 1);
for (var i = 0; i < hex.length; i += 2) str += String.fromCharCode(parseInt(hex.substr(i, 2), 16) - shift);
return str;
}
Python 版本:
from __future__ import print_function
import re
import codecs
HEIDI_CONF = '/media/sf_D_DRIVE/Program Files/HeidiSQL/settings.txt'
HEIDI_CONF_SEP = re.compile(re.escape('<|||>'))
def heidi_pw_decode(code):
shift = int(code[-1])
code = code[:-1]
password = ''.join(map(lambda x: chr(int(x, 16) - shift), re.findall(r'\w{2}', code)))
return password
def main():
with codecs.open(HEIDI_CONF, encoding="utf8") as fp:
lines = [line.strip() for line in fp.readlines()
if line.startswith('Servers') and '\\Password<' in line]
passwords = []
for line in lines:
parts = HEIDI_CONF_SEP.split(line)
server_name = parts[0].split('\\')[1]
password = heidi_pw_decode(parts[-1])
passwords.append((server_name, password))
if passwords:
print(' All Database Passwords '.center(80, '-'))
print()
for server_name, password in passwords:
print('Database: %s' % server_name)
print('Password: %s' % password)
print()
else:
print('[INFO] No password can be found!')
if __name__ == '__main__':
main()
列出 Python 文档中的章节
我当时好像是为了比对 2 和 3 的文档章节差异,看看 3 多了些什么...
- https://docs.python.org/2/library/
- https://docs.python.org/3/library/
var chapters = {};
var arrL1 = $(".toctree-l1 > a");
var arrL2 = $(".toctree-l2 > a");
var content = "";
$(".toctree-l1").each(function () {
var l1Title = $(this).find(arrL1).text();
content += "- " + l1Title + "\n";
chapters[l1Title] = [];
$(this)
.find(arrL2)
.each(function () {
var l2Title = $(this).html();
l2Title = l2Title.replace(/<code class="docutils literal notranslate"><span class="pre">|<\/span><\/code>/g, "`");
l2Title = l2Title.replace(/<strong class="program">|<\/strong>/g, "**");
chapters[l1Title].push(l2Title);
content += " - " + l2Title + "\n";
});
});
// console.log(JSON.stringify(chapters));
console.log(content);
自动删除网易邮箱的邮件
有些文件夹下的邮件实在太多,好几千封,两百大几十页,要是一个一个的全选、删除、等执行完成,那不累死,不是程序员该做的事。
写了个脚本,自动勾选删除。
PS:脚本没有找到,等找到了再补上。