爬蟲基礎知識
阿新 • • 發佈:2017-11-04
動態 match 正則表達式 正則表達 括號 學習 () 虛擬 path
1.安裝 requests scrapy 豆瓣源 pip install -i 豆瓣源 包名
2.新建虛擬環境時使用 -p 參數指定 Python的版本目錄 virtualenv -p pythonpath envXXX
3.網頁分類
靜態網頁
動態網頁
webservice
4.爬蟲的應用
搜索引擎
推薦引擎
機器學習的數據樣本
金融等數據分析
等。。。
5.正則表達式
^:(限定開頭)
.:(一個字符)
* + {n}:(限定詞)
|:(或)
():括號用於提取子字符串
[ a-z ]:指定字符為中括號中任意一個 1[58347][0-9]{9}: 電話號碼驗證 1開頭 第二位只能是58347中的一位 最後剩下九位只能再0-9之間選擇
&:(限定結尾)
^a : 以字母a開頭
^a.: 以字母a開頭後面任意一個字符
^a.*: 以字母a開頭並且後面任意字符
^a.*3$: 以字母a開頭並且後面任意字符3$以3結尾 *限定詞 0-多次
^a.+3$: 加號用於限定前面的字符至少出現一次 aX3 aXX3 ... +限定詞 1-多次
^a.{2}3$: 加號用於限定前面的字符出現兩次 aXX3 {1},{1,3},{1,}限定詞 指定n-m次
import re str = ‘wlc123‘ zhengze = ‘^w.*‘ if re.match(zhengze, str): print(True)
import re #用於解釋貪婪匹配此案例輸出結果為cc 而不是clllllllllc #因此需要添加問號?使得匹配從左往右進行就可以得到clllllllllc了 #只在左邊添加?結果會變成cllllllllcc後邊還是會貪婪匹配 因此在後邊的c之前也要加上? str = ‘wwlcllllllllllcc123‘ zhengze = ‘.*(c.*c).*‘ #zhengze = ‘.*?(c.*?c).*‘ result = re.match(zhengze, str) print (result.group(1))
6.深度廣度優先遍歷算法
7.url去重的常見策略
待續
爬蟲基礎知識