python使用Regex編寫網頁小爬蟲

來源:互聯網
上載者:User

標籤:Regex   python   爬蟲   

"""

文本處理是當下電腦處理的主要任務,從文本中找到某些有用的資訊,

挖掘出某些資訊是現在電腦程式大部分所做的工作。而python這中輕量型、小巧的語言套件含了很多處理的函數庫,

這些庫的跨平台效能很好,可移植效能很強。

在Python中re模組提供了很多進階文字模式匹配的功能,以及相應的搜尋替換對應字串的功能。

"""


"""

Regex符號和特殊字元

re1|re2 -----> 匹配Regex的re1或者re2

. -----> 可以匹配任何字元,但是除了分行符號之外

^ -----> 匹配字元創的開始 ^Dear

$ -----> 匹配字串的結尾 /bin/*sh$

* -----> 匹配前面出現的Regex零次或者多次 [A-Za-z0-9]*

+ -----> 匹配前面出現的Regex一次或者多次 [A-Za-z0-9]+ [a-z]+\.com

? -----> 匹配前面出現的Regex零次或者一次 goo?

{N} -----> 匹配前面出現的RegexN次 [0-9]{N}

{M,N} -----> 匹配重複出現M次到N次的Regex [0-9]{3,5}

[...] -----> 匹配字元組中出現的任意一個字元 [aeiou]

[...x-y...]-----> 匹配從字元x到y中的任意一個字元 [0-9],[A-Za-z]

[^...] -----> 不匹配此字元集中出現的任何一個字元,包括某個範圍的字元 [^A-Za-z0-9_]

(*|+|?|{})? -----> 用於上面出現的任何"非貪婪版本"重複匹配的次數符號 .*?[a-z]

(...) -----> 匹配封閉括弧中Regex(RE),並儲存為字數組 ([0-9]{3})?,f(oo|u)bar

"""


import rep=re.compile('ab*');print p;r1=r'\d{3,4}-?\d{8}';print re.findall(r1,'010-12345678');print re.findall(r1,'010-00000000');r2=re.compile(r'[Cc][Ss][Vv][Tt]');r3=re.compile(r'csvt',re.I);print r3.findall('cSvT');test_r=r'(abc/[0-9]{8,8}$)';print re.findall(test_r,'abc/12345678');

"""

使用Regex進行一個網頁爬蟲

"""


headers={    'Connection': 'Keep-Alive',    'Accept': 'text/html, application/xhtml+xml, */*',    'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko'};import urllib2url='http://blog.csdn.net/berguiliu';req=urllib2.Request(url);req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko');Browser=urllib2.urlopen(req);data = Browser.read();re_blog_list=re.compile(r'href="(/berguiliu/article/details/[0-9]{8,8})">');url_list=re.findall(re_blog_list,data);import cookielibdef makeMyOpener(head):    cj=cookielib.CookieJar();    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj));        header=[]    for key, value in head.items():        elem=(key, value)        header.append(elem)    opener.addheaders=header;    return opener  oper = makeMyOpener(headers);uop = oper.open('http://www.baidu.com/', timeout = 1000);data = uop.read();print data;import time;for subUrl in url_list:    new_Url='http://blog.csdn.net'+subUrl;    print new_Url;    oper = makeMyOpener(headers);    uop = oper.open(new_Url, timeout = 1000);    data = uop.read();    time.sleep(3)

這個程式主要是通過抓取網頁,分析一下網頁資訊,找到自己感興趣的部分, 就可以找到其對應的資訊,進行相應的操作!



python使用Regex編寫網頁小爬蟲

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.