先前發文
DAY 01 : 參賽目的與規劃
DAY 02 : python3 virtualenv 建置
DAY 03 : python3 request
DAY 04 : 使用beautifulsoup4 和lxml
DAY 05 : select 和find 抓取tag
DAY 06 : soup解析後 list取值
DAY 07 : request_header_cookie 通過網頁18限制
DAY 08 : ppt內文爬取
DAY 09 : 資料處理 split replace strip
DAY 10 : python csv 寫入 和dict 合併
DAY 11 : python class function
DAY 12 : crawl 框架 scrapy 使用
DAY 13 : scrapy 架構
DAY 14 : scrapy pipeline data insert mongodb
DAY 15 : scrapy middleware proxy
DAY 16 : scrapy selenium
DAY 17 : scrapy 爬取js畫面資料(二)
DAY 18 : scrapy splash 爬取js畫面資料(三)
DAY 19 : python .env 使用
今天來介紹env變數設置
建立一個檔案名稱:.env 打上重要資料後
MONGODB_URI = 'mongodb://ip:port/database'
MONGODB_DB_NAME = 'database'
DB_ACCOUNT = 'username'
DB_PW = 'password'
DB_MECHANISM = 'example'
下載套件
pip3 install python-dotenv
在需要調用的檔案內import python-dotenv套件 , 例如scrapy 裡的setting 使用mongo含有隱私的資料 , 以防推到git上時被公開 , 導致自己的伺服器被攻擊
from dotenv import load_dotenv
load_dotenv()
MONGODB_URI = os.getenv('MONGODB_URI')
MONGODB_DB_NAME = os.getenv('MONGODB_DB_NAME')
DB_ACCOUNT = os.getenv('DB_ACCOUNT')
DB_PW = os.getenv('DB_PW')
DB_MECHANISM = os.getenv('DB_MECHANISM')
在middleware裡使用setting裡的變數資料進行應用
db_uri = spider.settings.get('MONGODB_URI', 'mongodb')
db_name = spider.settings.get('MONGODB_DB_NAME', 'rushing_channel')
db_account = spider.settings.get('DB_ACCOUNT', 'mongodb_account')
db_password = spider.settings.get('DB_PW', 'mongodb_password')
db_mechanism = spider.settings.get('DB_MECHANISM', 'mongodb_mechanism')