Python网络爬虫:爬虫篇(一)---最简单的网络爬虫
知周所众,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,即输入错误,怎么办呢,可以配合异常处理:
那么这次我们再输入一个错误的url试一下:
这样就实现了,当然,也可以加入循环或GUI提升用户的体验,那么由于时间原因,我们就先谈到这里,下期继续,感谢收看,欢迎留言一起探讨!
2401_85967131: 怎么获取
bv4cv: download.btpanel.cm 網址錯誤 應該是 download.btpanel.com
accpvp: 免费的往往是最贵的
m0_71899117: 我的错误是2024/03/26 22:06:46 [crit] 3853#3853: *22 stat() "/home/pi/DjangoBlog/" failed (13: Permission denied), client: 192.168.201.211, server: www.zhichibupang.com, request: "GET / HTTP/1.1", host: "192.168.201.160" 2024/03/26 22:06:46 [error] 3853#3853: *22 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.201.211, server: www.zhichibupang.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "192.168.201.160" ,该怎么解决,大佬