1. 程式人生 > >爬蟲基礎知識

爬蟲基礎知識

動態 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去重的常見策略

 待續 

爬蟲基礎知識