昨天晚上看看python,比较高兴,今天照着教程写了个小例子

主要用到了python中的正则表达式re和网络urllib2,

下面我附上全部代码

其实downURL这个的功能是最核心的,应为整个爬虫扒取网页的主要功能就是由他实现的

 

  1. #coding=utf-8  
  2. import urllib2  
  3. import re  
  4.   
  5. def downURL(url,filename):  
  6.     try:  
  7.         fp=urllib2.urlopen(url)  
  8.     except:  
  9.         print 'download exception'  
  10.         return 0  
  11.     op = open(filename,"wb")#趴下来的网页存这里  
  12.     while 1:  
  13.         s = fp.read()  
  14.         if not s:  
  15.             break  
  16.         op.write(s)  
  17.           
  18.     fp.close()  
  19.     op.close()  
  20.     return 1  
  21.   
  22. def getURL(url):#使用正则表达式进行url的挖掘  
  23.     try:  
  24.         fp = urllib2.urlopen(url)  
  25.     except:  
  26.         print 'get url exception'  
  27.         return []  
  28.     pattern = re.compile("http://m.qiushibaike.com/hot/page/")#正则表达式匹配  
  29.     while 1:  
  30.         s = fp.read()  
  31.         if not s:  
  32.             break  
  33.         urls = pattern.findall(s)  
  34.     fp.close()  
  35.     return urls  
  36.   
  37. def spider(startURL,times):#爬虫  
  38.     urls = []  
  39.     urls.append(startURL)  
  40.     i=0;  
  41.     while 1:  
  42.         if i>times:  
  43.             break  
  44.         if len(urls)>0:  
  45.             url = urls.pop(0)  
  46.             print url,len(urls)  
  47.             downURL(url,str(i)+'.htm')#趴下来的网页  
  48.             i=i+1  
  49.             if len(urls)<times:  
  50.                 urllist = getURL(url)  
  51.                 for url in urllist:  
  52.                     if urls.count(url) == 0:  
  53.                         urls.append(url)  
  54.         else:  
  55.             break  
  56.     return 1  
  57.   
  58. spider("http://m.qiushibaike.com/hot/page/",2)  
  59.                           
  60.   
  61.           
posted on 2013-10-23 16:50  爱哎唉  阅读(173)  评论(0)    收藏  举报