本帖最后由 一只学编程的鱼 于 2023-1-5 00:09 编辑
引言
知周所众,Python是一门强大的编程语言,我们可以用它来做许多事情,今天,我们就尝试着用Python来写一个最简单的网络爬虫。
准备工作
我们这次要用到Python中的urllib.request的第三方模块,要想使用这个模块,你就得下载下来(质量守恒定律doge),下载方法就不过多赘述,无论是什么模块,下载的方法都无非是:
这样,我们的第三方库就安装成功了,接下来就是要导入这个库:
那么到这里,我们的准备工作就做完了,接下来就开始写吧!
基础玩法
首先,我们要知道,我们需要用的是一个函数:urlopen()函数,这个函数可就NB了,可以给目标url发送一个请求,那么接下来,我们再用print()函数打印出来不就可以了,来看看吧,这里我们以B站为例,先写出下面这段代码:
观察输出结果,我们会发现不对的地方,这...
这,这不对吧,说好的源代码呢,就这?我没学过前端,你别骗我,嗯,这确实不是,不过问题不大,我们先用type()函数来看看它的类型:
我们来看看这家伙到底是“何方神圣”:
可以看到,这其实是一个HTTPResponse类型的对象(话说我都学了两年面向对象编程了,居然还没有对象doge),那么怎么办呢,我们可以利用这个对象中的read()方法把他读出来,而且要用utf-8或gbk格式:
那么现在,我们再来看看结果吧,可以看到,这就是B站网页的源码了:
所谓进阶玩法,既然是设计,那就应该用户怎么舒服怎么来,用户也不一定都学过Python,要是人家想自己爬自己想爬的,难不成要自己改参数?所以我们要设计一个可以让用户自己输入url的代码,那么我们利用input()函数就可以轻松的写出以下代码:
那么这样不就可以让自己用户输入url了,但是很快,一个新的问题摆在我们面前,如果用户故意输入一个错误的url应该怎么办呢,我们不妨先自己输入一个错误的url,观察报错信息: 可以看到,报出了Valueerror,即输入错误,怎么办呢,可以配合异常处理:
这样就实现了,当然,也可以加入循环或GUI提升用户的体验,那么由于时间原因,我们就先谈到这里,下期继续,感谢收看,我是一只学编程的鱼 |
使用道具 举报
所以,我能理解为双重否定吗(doge)
使用道具 举报