本节我们练习使用Urllib库抓取网页
Urllib库是Python中用来操作URL的模块,在Python2和Python3中有一定的差异。我们使用的是Python3,具体两者之间的差异我们就不多说了。
导入模块urllib.request,这个模块用来打开和获取URL的。
import urllib.request
使用urllib.request.urlopen打开并爬取一个网页。
file=urllib.request.urlopen("http://www.baidu.com")
使用file.read()读取网页内容,也可以使用file.readline()读取一行内容
data=file.read()
dataline=file.readline()
输出爬取的内容
print(dataline)
print(data)
file.read()读取文件全部内容,把内容赋给一个字符串变量;file.readlines()读取文件全部内容,但是它把内容赋给一个列表变量。file.readline()读取一行内容。
将爬取的网页以网页格式保存在本地:
- 爬取一个网页并赋给一个变量;
- 以写入的方式打开一个本地文件,命名为*.html等格式。
- 将变量写入该文件。
- 关闭该文件。
import urllib.request
file=urllib.request.urlopen("http://www.baidu.com")
data=file.read()
print(data)
fhandle=open("D:/Pythonlearning/1.html","wb")
fhandle.write(data)
fhandle.close()
也可以使用urllib.request中的urlretrieve()函数:
filename=urllib.request.urlretrieve("http://edu.51cto.com",filename="D:/Pythonlearning/2.html")
urllib.request.urlcleanup() #清除缓存
返回与当前环境有关的信息:
file.info() #爬取的网页.info
file为爬取到的网页赋值的变量,“爬取的网页.info”.
返回网页的状态码:
file.getcode() #爬取的网页.info
获取爬取的URL地址:
file.geturl()
返回:‘http://www.baidu.com’