def getAlexa(self,url):
     '''
     :从Alexa网站上获取全球排名中文排名信息
     :param url:待获取排名信息的超链接
     '''
     if ggv.pterminate:return None
     ranks = []
     numR = 0
     gd = GetDomain()
     domain = gd.getDomain(url)                          #提取超链接的域名
     url = cgv.alexaUrl + domain
     time.sleep(10)                                      #休眠10秒
     htmlText = GetHtmlText()
     soup = htmlText.getHtml(url)                        #获取网页源码,不能直接根据网页文本进行判断,因为有的信息不存在
     if soup:
         rankrow = soup.findAll('div',{'class':'rank-row'})
         for rk in rankrow:
             rkl = rk.find('div')
             if type(rkl) == types.NoneType:
                 continue
             numR += 1
             rank = rkl.find('a').text                   #如果有排名,排名处会出现超链接
             ranks.append(rank)
         if numR < 2:
             ranks.append('-')
     else:                                               #没有相关标志则表示不存在
         ranks.append('-')
         ranks.append('-')
     return ranks
 def getAlexa(self, url):
     """
     :从Alexa网站上获取全球排名中文排名信息
     :param url:待获取排名信息的超链接
     """
     if ggv.pterminate:
         return None
     ranks = []
     numR = 0
     gd = GetDomain()
     domain = gd.getDomain(url)  # 提取超链接的域名
     url = cgv.alexaUrl + domain
     time.sleep(10)  # 休眠10秒
     htmlText = GetHtmlText()
     soup = htmlText.getHtml(url)  # 获取网页源码,不能直接根据网页文本进行判断,因为有的信息不存在
     if soup:
         rankrow = soup.findAll("div", {"class": "rank-row"})
         for rk in rankrow:
             rkl = rk.find("div")
             if type(rkl) == types.NoneType:
                 continue
             numR += 1
             rank = rkl.find("a").text  # 如果有排名,排名处会出现超链接
             ranks.append(rank)
         if numR < 2:
             ranks.append("-")
     else:  # 没有相关标志则表示不存在
         ranks.append("-")
         ranks.append("-")
     return ranks
 def getIpAndAddress(self, url):
     """
     :获取相应url的ip地址
     :param url:待获取ip地址的超链接
     """
     if ggv.pterminate:
         return None
     list = []
     gd = GetDomain()
     domain = gd.getDomain(url)
     try:
         ip = socket.gethostbyname(domain)
     except Exception, e:
         if ggv.pterminate:
             return None
         #             print 'Get Ip address error: %s, url:%s'%(e,url)
         logging.error("Get Ip address error: %s,url:%s " % (e, url))
         try:
             ip = socket.gethostbyname("www." + domain)
         except Exception, e:
             if ggv.pterminate:
                 return None
             #                 print 'Get Ip address error2:%s,url:%s '%(url,e)
             logging.error("Get Ip address error2: %s,url:%s " % (url, e))
             list.extend(["-", "-"])
             return list
 def getBeian(self,url):
     '''
     :从360服务器读取所要网站的建站的详细信息
     :如,网站名称、网站主页、网站所有者、网站所有单位、所有单位性质、备案信息、检验时间等信息。
     :param url:需要获取相关信息的网站链接
     '''
     if ggv.pterminate:return None
     gd = GetDomain()
     domain = gd.getDomain(url)                          #提取链接中的域名,因为360根据域名获取网站建站信息
     gi = GetItems()
     base64Code = base64.b64encode(domain)               #编码为base64,因为360获取网站建站信息的超链接域名是base64编码的
     beianUrl = cgv.url360 + base64Code
     htmlText = GetHtmlText()                            #获取网页文本
     text = htmlText.getHtmlText(beianUrl)
     return gi.getItems(text, cgv.beiAnInfoItem, cgv.beiAnNoInfo)
 def getBeian(self, url):
     """
     :从360服务器读取所要网站的建站的详细信息
     :如,网站名称、网站主页、网站所有者、网站所有单位、所有单位性质、备案信息、检验时间等信息。
     :param url:需要获取相关信息的网站链接
     """
     if ggv.pterminate:
         return None
     gd = GetDomain()
     domain = gd.getDomain(url)  # 提取链接中的域名,因为360根据域名获取网站建站信息
     gi = GetItems()
     base64Code = base64.b64encode(domain)  # 编码为base64,因为360获取网站建站信息的超链接域名是base64编码的
     beianUrl = cgv.url360 + base64Code
     htmlText = GetHtmlText()  # 获取网页文本
     text = htmlText.getHtmlText(beianUrl)
     return gi.getItems(text, cgv.beiAnInfoItem, cgv.beiAnNoInfo)
    def extractUrls(self):
        '''
        :提取网页所有超链接
        '''
        gd = GetDomain()
        self.dm = gd.getDomain(self.url)
        if not self.dm:                                     #传入的链接本身就存在问题
#             print 'Illegal url'
            logging.warn('Illegal url: %s'%self.url)
            return
        if self.flag not in self.flags:                     #参数不合法
#             print 'Illegal parameter'
            logging.warn('Illegal parameter: %s'%self.choiceId)
            return
        else:
            self.links = self.getUrls()                     #获取超链接
            if self.links:
                if self.flag == 'inlink':self.getInnerUrls()
                elif self.flag == 'outlink':self.getOuterUrls()
                else:self.getSubInnerUrls()
 def extractUrls(self):
     '''
     :提取网页所有超链接
     '''
     gd = GetDomain()
     self.dm = gd.getDomain(self.url)
     if not self.dm:  #传入的链接本身就存在问题
         #             print 'Illegal url'
         logging.warn('Illegal url: %s' % self.url)
         return
     if self.flag not in self.flags:  #参数不合法
         #             print 'Illegal parameter'
         logging.warn('Illegal parameter: %s' % self.choiceId)
         return
     else:
         self.links = self.getUrls()  #获取超链接
         if self.links:
             if self.flag == 'inlink': self.getInnerUrls()
             elif self.flag == 'outlink': self.getOuterUrls()
             else: self.getSubInnerUrls()
    def getIpAndAddress(self,url):
        '''
        :获取相应url的ip地址
        :param url:待获取ip地址的超链接
        '''
        if ggv.pterminate:return None
        list = []
        gd = GetDomain()
        domain = gd.getDomain(url)
        try:
            ip = socket.gethostbyname(domain) 
        except Exception,e:
            if ggv.pterminate:return None
#             print 'Get Ip address error: %s, url:%s'%(e,url)
            logging.error('Get Ip address error: %s,url:%s '%(e,url))
            try:
                ip = socket.gethostbyname('www.'+domain)
            except Exception,e:
                if ggv.pterminate:return None
#                 print 'Get Ip address error2:%s,url:%s '%(url,e)
                logging.error('Get Ip address error2: %s,url:%s '%(url,e))
                list.extend(['-','-'])
                return list