开一个新坑,和《刘小玩美食教程》交替更新。我本身不会Python,一边学一边试图以最简单方式来解释编程和Python,让各位理工男可以拿去教自己的女朋友。
现在的少女,甚至是少年们,都有老公,他们是王思聪、胡歌、吴亦凡、小鲜肉甲乙丙丁和ZXHM n(*≧▽≦*)n。有没有迷妹们想过,把老公在互联网上所有的照片都装进电脑或者手机里面,自己夜深人静的时候偷偷舔屏,一年三白六十五次不重样,到了明年,换个老公,再来一回。
我们的Python教程,将以实现这个为目的,中间串讲Python、编程和互联网的知识。
在不会编程时,想收集某老公比如胡歌的照片,会先搜索胡歌,在搜索结果中点击进去看大图,然后点击右键,将图片存储为,保存。现在我们将这个过程编程实现自动化。初步效果如下:
这是我运行之前的文件夹:
这是运行过程:
这是运行之后的文件夹:
我先给一个网址:http://cn.bing.com/images/search?q=胡歌&first=1&count=28,意思是从必应搜索图片,搜索关键字是“胡歌”,从第一个开始搜索,一次搜索的图片数是28个。这个网址得到的数据展示成网页的效果如下(注意是得到的数据展示成网页的效果,直接在浏览器输入网站,是不一样的,原因以后有机会再说):
很简陋甚至丑陋是不是,这才是通过网址得到的原始数据。
接下来,我们要看这些图片对应的数据是怎样的:
第一张图片
第二张图片
第三长图片
好的,刚刚在不要脸的用图片占篇幅,不过事不过三。已经可以让我们通过例子总结规律了。所有图片对应数据的格式都一模一样,那就是:<a class="thumb" target="_blank" href="第一串网址" h="ID=images,5028.1"><div class="cico" style="width:230px;height:170px;"><img src="第二串网址" alt=" " width="230" height="170"></div></a>。而且,细心的同学们还会发现,我们选的三个示例的第一串网址,都是以.jpg结尾的,说明他们都是图片,这不就是我们要的吗
(因为图片看不清导致上面的内容不明白也没关系,接着往下看就可以了。最好是装了软件跟着做,编程是门实践,不跟着做很难有效果)
现在技术流程就明了啦,我们先获取http://cn.bing.com/images/search?q=胡歌&first=1&count=28的数据,接着从里面找出所有形似:<a class="thumb" target="_blank" href="第一串网址" h="ID=images,5028.1"><div class="cico" style="width:230px;height:170px;"><img src="第二串网址" alt=" " width="230" height="170"></div></a>的段落,然后找出他们的第一串网址,从第一串网址下载图片,搞定。
接下来,我们就需要用到网址http://cn.bing.com/images/search?q=胡歌&first=1&count=28,但是如果每次都用这么长一串,也太麻烦了。怎么办呢,在数学里面,我们经常会这么干:设x=b²-4ac。所以,在python里面,我们也这么干:
url="http://cn.bing.com/images/search?q=胡歌&first=1&count=28"
我们就用url代替那么长一段网址了。可是怎么验证url就是这么一段网址呢?还记得我们在第二期视频的末尾,在Visual Studio Code编辑器里面,打开了一个叫做终端集成器的东西么,现在我们打开VS Code,打开终端集成器,在里面敲入python,然后回车。就得到了一个以>>>开头的黑窗口。
这就是python环境了。接下来我们输入:url="http://cn.bing.com/images/search?q=胡歌&first=1&count=28",按回车,就给url赋值了,值就是那么一长串网址。怎么查看url到底是不是这串网址呢?直接在下面输入url,然后按回车,就会显示url的值,是不是一模一样。
好啦,我们再也不用在每个地方都用这么一长串了。
但是,要是所有人的老公都是胡歌,他的身体就要被掏空了。为了胡歌的身体健康,那串网址中,胡歌这块要可以灵活的变成其他人。另外,我们下完了从1开始的28张图片,接下来就应该是从29开始的28张图片了,所以要求1和28那部分也是可变的。怎么办呢?简单:
name="胡歌"first=1count=28现在name代表了“胡歌”,first代表了1,count代表了28,,接下来只需要用这些把网址中相应的部分换掉就可以了。以后要什么要变动,比如明年老公变成了霍建华,那就改成:
name="霍建华"
换老公,从未如此简单!
同理,下完前28张图片之后,要下接下来的28张时,就是以29为开始,只需要:
first=29
就可以了。
看到了name,first,count都是可以变的,所以他们叫变量,变量的名字除了特别少数的几个被Python系统霸占了之外,基本上是可以随便取的,比如abc、ABc、_abc、a_b、a1b都没有问题,不过,在取名字的过程中尽量选用有意义的词,比如网址用url,老公的名字用name,免得过了一段时间自己就忘记他是干嘛的了,像abc、a1b这种变量命名,最好永远不要出现在代码里面。
有细心的同学发现了,为什么name="胡歌"有双引号,而first=1没有呢。
因为他们的数据类型不同,在Python中,有五种基本的数据类型,整型(int)、浮点型(float)、字符串(str)、布尔型(bool)、空值(None),只有字符串类型是需要用引号包起来的。
顾名思义,整型,就是整数类型。比如上面的first和count都是这样的类型。
浮点型,就是小数类型,比如num=1.23,这里num就是浮点型。
字符串类型是指一串字符,这串字符必须用引号包起来,单引号双引号都可以,但是不能单双混用,比如str="一串字符",也可以是str='一串字符',但是,不能是str="一串字符',简单来说,龙配龙,凤配凤。那么,numstr="1",numstr是整型还是字符串呢?答案是:字符串!。有同学可能要问了,假设我的字符串里面有引号怎么办呢?比如一串字符串是:迷妹内心OS:"我要给胡歌生猴子"。这位同学,你很会吹毛求疵,不过,程序员头顶的毛都已掉光了,不会给你机会。如果在字符串中有引号,会使用转义字符:/",用他代替引号。所以要把上述的一段话赋给一个变量:os="迷妹内心OS:/"我要给胡歌生猴子/""。单引号也是一样的道理。
布尔型只有两个值,一个是真(True),一个是假(False),开头必须是大写,比如value=True。
空值只有一个值,就是None,比如value=None。有人说,空值就是什么都没有,干嘛要存在呢。因为,有无可以相生,难易可以相成,长短可以相形,高下可以相形,音声相和,前后相随,有乃万物之母,无乃天地之始。以后同学们会发现空值的用处大大的存在的。
好了,变量和类型都说清楚了,那么怎么把我们的name,first,count整合到url里面去呢,下节课再说。
欢迎关注我的微信公众号获取最新文章:
新闻热点
疑难解答