个人借鉴网上爬虫代码改写的py

#-*-coding:utf-8-*-
import urllib
import httplib 
from sgmllib import SGMLParser
from urlparse import urlparse


class SuningParser(SGMLParser):
    errcode=''  
    errmsg='' 
    urlList = []
    def reset(self):
        SGMLParser.reset(self)
        self.urlList = []
    def start_a(self,attrs):
        linkUrl = [v for k,v in attrs if k == 'href']
        if  not linkUrl[0].find('http'):
            print linkUrl[0].find('http')
            self.urlList.append(linkUrl[0]+"\r\n")


            
class NetUtil:   
    def http_get(self,url,timeout=5,is_https=False):  
        domain=query_str=data=''  
        o=urlparse(url)  
        domain=o.netloc  
        if ''!=o.path or ''!=o.query:  
            query_str=o.path+'?'+o.query  
  
        if is_https:  
            conn=httplib.HTTPSConnection(domain,443,timeout)  
        else:  
            conn=httplib.HTTPConnection(domain,80,timeout)  
  
        conn.request('GET',query_str)  
        resp=conn.getresponse()  
        status=resp.status  
        if 200==status:  
            data=resp.read()  
        else:  
            self.errcode=''  
            self.errmsg='http response code(%s):%s' % (status,resp.reason)  
              
        conn.close()  
        return data  
      
    def http_post(self,url,ps={},timeout=5,is_https=False):  
        headers={"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}  
        domain=query_str=data=''  
        o=urlparse(url)  
        domain=o.netloc  
        if ''!=o.path or ''!=o.query:  
            query_str=o.path+'?'+o.query  
  
        if is_https:  
            conn=httplib.HTTPSConnection(domain,443,timeout)  
        else:  
            conn=httplib.HTTPConnection(domain,80,timeout)       
             
        ps=urllib.urlencode(ps)  
        conn.request('POST',query_str,ps,headers)  
        resp=conn.getresponse()  
        status=resp.status  
        if 200==status:  
            data=resp.read()  
        else:  
            self.errcode=''  
            self.errmsg='http response code(%s):%s' % (status,resp.reason)  
              
        conn.close()  
        return data






url = "http://www.suning.com"
page = urllib.urlopen(url)
parser = SuningParser()
parser.feed(page.read())
print parser.urlList


    












f = open('E:\py\wb.txt','w+')
f.writelines(parser.urlList)
f.close()


print "done"




只能一层爬虫,对动态加载的http内容也没处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值