开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 15 天,点击查看活动详情
为了更方便快捷的操作URL模块来快速爬取一个页面,可以使用Urllib库,那么本文来简单介绍一下Urllib库的一些知识。
1)导入模块:要想使用Urllib库,要先导入urllib.request库:
import urllib.rebquest
2)使用urllib.request.urlopen打开并爬取一个网页:
file = urllib.request.urlopen("http://www.souhu.com")
3)其他常用方法:
- file.readline():读取一行的内容。
- file.read():读取文件的全部内容。
- file.readlines():读取文件的全部内容。
这里需要注意一下它们的区别,file.read()会把读取的内容存放到一个字符串变量中。 readlines()会把读取到的内容赋值给列表,readline则只读取一行内容。当需要读取所有的内容时,建议使用file.readlines()
4)将读取到的内容存档到本地中。这需要将所爬取到的内容先存放到一个变量中,然后打开想要存放的本地文件,如果要以网页的形式来存放的话使用*.html的格式,然后就可以把爬取到的内容向文件中写入,注意写完后关闭文件,避免资源浪费。这个过程需要用到open("文件路径","wb")、write(data)、close()等函数,即使用open函数打开需要存放的文件,设置wb也就是用二进制写入的方式打开,再使用write()方法执行写入操作,写入data到文件中。
以上就是Urllib库的使用流程,但是在实际操作中会遇到一个编码问题,因为URL可以让一些ASCII字符正常显示,其他比如“:”、“¥”等都不可以正常显示,这时候该怎么办呢?这就需要用到编码操作,使用urllib.request.quote()来进行编码,使用urllib.request.unquote()方法来进行解码,这样就可以解决特殊符号问题了。