目錄python
基礎: os,sys,time,datetime,json,pickle,randon,hashlib,re,math,logging 爬蟲: requests,BeautifulSoup,xpath,gevent,asyncio,twisted 數據分析: pandas,numpy,scipy,matplotlib,seaborn 等。。。
pip3 install 模塊名稱
match:匹配開頭mysql
search:匹配從上至下查找web
import re s1 = 'abcabcabc' print(re.match('abc', s1).group()) # abc print(re.match('abc', s1).span()) # (0, 2) print(re.search('bca', s1).group()) # bca print(re.search('bca', s1).span()) # (1, 4)
貪婪匹配: 默認都是貪婪匹配。貪婪匹配都是取大,好比: *表示零次更屢次、+表示一次或屢次、?表示零次或一次 默認貪婪匹配時:*表示屢次、+表示屢次、?表示一次 取消貪婪匹配: 量詞後面加問號(?)。 eg: 待匹配:李傑和李蓮英和李二棍子 正則表達式:李.+? 結果:李傑 李蓮 李二 ,由於+後面跟了?,因此+表示一次 res3 = re.findall('李.?','李傑和李蓮英和李二棍子') print(res3) # 結果:['李傑', '李蓮', '李二'] 轉義符: \ : 取消轉義 eg: \\n 表示\n
用random隨機模塊 import random print(random.randint(0, 9)) # 隨機取一個0-9的數字,包含頭尾 print(random.random) # 取0-1之間的小數 print(random.choice([1, 2, 3, 4])) # 隨機從列表中取一個值 print(random.uniform(1,10))#1-10小數,如1.927109612082716 random.randrange(1,10,2) # 大於等於1且小於10之間的奇數
用os模塊 import os os.remove('文件名')
在咱們平時編寫的程序,基本上都會有記錄日誌的需求,而且日誌當中包含的內容既有正常的程序訪問,又有錯誤,警告等信息輸出,在python的logging模塊當中就提供了標準的日誌接口,能夠經過它來存儲各類格式的日誌. logging模塊也分爲五個等級: debug(), info(), warning(), error(), critical() 其中默認級別爲warning,默認打印到終端 """ 開發應用程序或部署開發環境時,能夠使用DEBUG或INFO級別的日誌獲取儘量詳細的日誌信息來進行開發或部署調試;應用上線或部署生產環境時,應該使用WARNING或ERROR或CRITICAL級別的日誌來下降機器的I/O壓力和提升獲取錯誤日誌信息的效率。 """
能夠處理的數據類型是 string、int、list、tuple、dict、bool、null # 自定義時間序列化轉換器 import json from json import JSONEncoder from datetime import datetime class ComplexEncoder(JSONEncoder): def default(self, obj): if isinstance(obj, datetime): return obj.strftime('%Y-%m-%d %H:%M:%S') else: return super(ComplexEncoder,self).default(obj) d = { 'name':'alex','data':datetime.now()} print(json.dumps(d,cls=ComplexEncoder))
# ensure_ascii=False 中文不轉碼 import json a=json.dumps({"ddf":"你好"},ensure_ascii=False) print(a) #{"ddf": "你好"}
import os print(os.listdir(path))
import re if re.match(r'^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$', email): print('right') else: print('wrong')
1. Django 2. Flask 3. web2py 4. Tornado 5. Twisted 6. TurboGears
requests:請求庫 BeautifulSoup:解析庫 selenium:自動化測試工具 pyquery:網頁解析庫 pymysql:存儲庫。操做mysql數據庫的 pymongo:操做mongodb數據庫的 urllib.request 請求模塊 模擬瀏覽器 urllib.error 異常處理模塊 urllib.parse url解析模塊 工具模塊,如:拆分、合併 urllib.robotparser robots.txt 解析模塊
1.Scrapy Scrapy是一個爲了爬取網站數據,提取結構性數據而編寫的應用框架。 能夠應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。。用這個框架能夠輕鬆爬下來如亞馬遜商品信息之類的數據。 2.PySpider pyspider 是一個用python實現的功能強大的網絡爬蟲系統,能在瀏覽器界面上進行腳本的編寫,功能的調度和爬取結果的實時查看,後端使用經常使用的數據庫進行爬取結果的存儲,還能定時設置任務與任務優先級等。 3.Crawley Crawley能夠高速爬取對應網站的內容,支持關係和非關係數據庫,數據能夠導出爲JSON、XML等。 4.Portia Portia是一個開源可視化爬蟲工具,可以讓您在不須要任何編程知識的狀況下爬取網站!簡單地註釋您感興趣的頁面,Portia將建立一個蜘蛛來從相似的頁面提取數據。 5.Newspaper Newspaper能夠用來提取新聞、文章和內容分析。使用多線程,支持10多種語言等。 6.Cola Cola是一個分佈式的爬蟲框架,對於用戶來講,只需編寫幾個特定的函數,而無需關注分佈式運行的細節。任務會自動分配到多臺機器上,整個過程對用戶是透明的。 7.Grab Grab是一個用於構建Web刮板的Python框架。藉助Grab,您能夠構建各類複雜的網頁抓取工具,從簡單的5行腳本處處理數百萬個網頁的複雜異步網站抓取工具。Grab提供一個API用於執行網絡請求和處理接收到的內容,例如與HTML文檔的DOM樹進行交互。
import datetime y = int(input('請輸入4位數字的年份:')) # 獲取年份 m = int(input('請輸入月份:')) # 獲取月份 d = int(input('請輸入是哪一天:')) # 獲取「日」 targetDay = datetime.date(y, m, d) # 將輸入的日期格式化成標準的日期 dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31) # 減去上一年最後一天 print('%s是%s年的第%s天。' % (targetDay, y, dayCount.days))