python 小白自学爬虫(3)

继续上一篇mlt类的方法


    def search(self):
        while True:
            while True:
                keyword=input('请输入搜索关键词: ')
                if keyword=='':print(colorama.Back.RED+'关键词不能为空!')
                elif keyword=='q':sys.exit()
                elif str.isalnum(keyword)==False:print(colorama.Back.RED+'您的输入非法,请重新输入!')
                else:break
                
            t0=time.time()
            url=self.host+'/search/'+keyword
            self.results=self.get_results(url)
            if len(self.results)==0:
                print(colorama.Back.RED+'没有匹配的结果,换个关键词试试吧!')
            else:
                t1=time.time()
                print(colorama.Fore.GREEN+'共找到匹配结果{}条,耗时{}秒'.format(str(len(self.results)),str(round(t1-t0,3))))
                break
 这里有两个无限循环 先看里面的这个


            while True:
                keyword=input('请输入搜索关键词: ')
                if keyword=='':

                    print(colorama.Back.RED+'关键词不能为空!')
                elif keyword=='q':

                    sys.exit()
                elif str.isalnum(keyword)==False:

                    print(colorama.Back.RED+'您的输入非法,请重新输入!')
                else:break


1.keyword=input('请输入搜索关键词: ')

之前说过的等待输入 并赋值

2.if keyword==''

为空 就是直接回车了

print(colorama.Back.RED+'关键词不能为空!')

红色输出这句话

3.elif keyword=='q':

为‘q’ 就是输入了q

sys.exit()   退出程序

4.elif str.isalnum(keyword)==False:

isalnum() 方法检测字符串是否由字母和数字组成。


isalnum()方法语法:

str.isalnum()


如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

查的资料都显示没有参数  不知道什么问题

5.else:break  上面条件都不满足 即输入合格 跳出循环


下面看大的无限循环

        while True:
            while True:
                keyword=input('请输入搜索关键词: ')
                if keyword=='':print(colorama.Back.RED+'关键词不能为空!')
                elif keyword=='q':sys.exit()
                elif str.isalnum(keyword)==False:print(colorama.Back.RED+'您的输入非法,请重新输入!')
                else:break
                
            t0=time.time()
            url=self.host+'/search/'+keyword
            self.results=self.get_results(url)
            if len(self.results)==0:
                print(colorama.Back.RED+'没有匹配的结果,换个关键词试试吧!')
            else:
                t1=time.time()
                print(colorama.Fore.GREEN+'共找到匹配结果{}条,耗时{}秒'.format(str(len(self.results)),str(round(t1-t0,3))))
                break


1.t0=time.time()

time time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。


代码  print "time.time(): %f " % time.time()
输出  time.time(): 1234892919.655932

2.url=self.host+'/search/'+keyword
拼接字符串 获得最终网址
3.self.results=self.get_results(url)


调用get_results(url)方法  返回结果集(

4.if len(self.results)==0:

判断返回的结果集长度

5.print(colorama.Back.RED+'没有匹配的结果,换个关键词试试吧!')

红色输出这句话

6.t1=time.time()


再次获取时间

7.print(colorama.Fore.GREEN+'共找到匹配结果{}条,耗时{}秒'.format(str(len(self.results)),str(round(t1-t0,3))))

print 输出 colorama.Fore.GREEN 加颜色 绿色

'共找到匹配结果{}条,耗时{}秒'.format()  使用方法

str(len(self.results)),str(round(t1-t0,3))

str(len(self.results))   把结果集的长度转成字符串

str(round(t1-t0,3))  

round() 方法返回浮点数x的四舍五入值。再转化成字符串

以下是 round() 方法的语法:

round( x [, n] ) 对x进行四舍五入(对于刚好是5的,结果取偶数),
n可以指定精确到小数点后几位,默认n为0,n为负数代表小数左边第几位

round(1.45, 1)
1.4

round(123.5, -1)# 对个位进行四舍五入
120.0

8.break  跳出大的无限循环  函数无返回 结束



本文标签: python
转载声明:本文为网中小南的原创文章,转载请注明原文地址,谢谢合作

发表评论: