當(dāng)抓取某個(gè)網(wǎng)并分析網(wǎng)頁數(shù)據(jù)時(shí)璧诵,經(jīng)常會(huì)使用正則匹配網(wǎng)頁源碼中的相關(guān)數(shù)據(jù)(一般是鏈接),下面就說一下常用的幾個(gè)正則。
1、\w\d式
\w:匹配字母或數(shù)字或下劃線或漢字
\d:匹配數(shù)字
常見的網(wǎng)址或圖片鏈接大部分都是這種格式姥份,
比如:"http://www.reibang.com/p/b9db8f395ea1", ? 就可以通過正則"http://www.reibang.com/p/\w+"來匹配(其中'+'代表可以有多個(gè)字符);
還有比較復(fù)雜點(diǎn)的"http://news.mtime.com/2017/09/25/1573897.html",可以用"http://news.mtime.com/\d+/\d+/\d+/\d+.html"來匹配年碘;
2澈歉、\S式
\S:匹配所有非空白字符
比如:"http://news.mtime.com/45515/asdasd-dsds-dsdsd.html"; 可以用"http://news.mtime.com/\d+/\S+.html"來匹配;
3屿衅、[xxxx]式
有時(shí)候我們本想只獲取網(wǎng)頁中的所有文章鏈接埃难,比如"http://news.mtime.com/45515/asdasd-dsds-dsdsd"式的;
我們可以通過上文中的"\S+"可以解決,即"http://news.mtime.com/\d+/\S+";
那么問題來了,這個(gè)正則不僅會(huì)匹配網(wǎng)頁中的文章鏈接涡尘,可能還會(huì)匹配我們不想要的鏈接忍弛,
比如像這種js鏈接"http://news.mtime.com/322323/asdasd/sdsds.js"也會(huì)匹配到。
所以我們需要將匹配范圍縮小考抄,即只匹配字母和橫線剧罩,那么這個(gè)網(wǎng)址可以用"http://news.mtime.com/\d+/[\w-]+.html"解決。