python-快速使用urllib爬取网页(1)
程序员文章站
2022-05-03 19:57:32
...
要使用Urllib爬取网页,首先需要导入用到的对应模块
urllib是python自带的模块,不需要下载
import urllib.request
导入了模块后,我们采用以下方法打开并爬取一个网页
file = urllib.request.urlopen("http://www.baidu.com")
此时,我们已经将爬取到的网页赋给了变量file
爬取完后,我们现在可以使用file.read()读取全部内容,也可以使用file.readline()读取一行内容
data = file.read()
dataline = file.readline()
我们读取到我们所爬取的百度首页的全部内容和第一行内容了
接着print查看一下
print(data)
print(dataline)
字符串变量 = file.read() #读取全部内容
列表变量 = file.readlines() #读取全部内容
字符串变量 = file.readline() #读取文件的一行内容
我们将爬出的内容存入本地的一个网页(第一种方法)
ps:本地不存在该文件的话,代码自动创建文件
1、将爬取内容赋予一个变量
2、以写入的方式打开本地文件
3、将变量的值写入本地文件 例:D:/python3.5/1.html
4、关闭改文件
fhandle = open("本地文件地址",“wb”)
fhandle。write(data)
fhandle,close()
打开本地html文件,发现我们已经将百度的内容爬取到了本地,只不过图片没有爬过来而已
我们将爬出的内容存入本地的一个网页(第二种方法)
ps:本地不存在该文件的话,代码自动创建文件
filename = urllib.request.urlretrieve("http://www.baidu.com",filename="D:/python3.5/2.html")
Urlretrive执行过程中,会产生一些缓存,我们如果想要清楚这些缓存信息,可以使用urlcleanup()进行清除
urllib.request.urlcleanup()
返回与当前环境的有关的信息
a = file.info()
print(a)
获取当前爬取网页的状态码,返回200为正确
b = file.getcode()
print(b)
获取所爬取的网页的额url地址
c = file.geturl()
print(c)
URL标准中只会允许一部分ASCII字符比如数字、字母、部分符号等
其他字符,如汉字不符合标准,这时需要URL编码来解决
编码解码代码如下
d = urllib.request.quote("http://www.baidu.com")
print(d)
e = urllib.request.unquote("http://www.haidu.com")
print(e)
结果显示为:
http%3A//www.baidu.com
http://www.haidu.com
通过上面学习,我们已经知道如何爬取一个网页的信息并进行简答的处理了
整体代码如下:
# coding=utf-8
import urllib.request
url="http://www.baidu.com" #爬取网页的url
file = urllib.request.urlopen(url) #爬取网页信息
get = file.read() #读取网页所有信息
getline = file.readline(); #读取第一行信息
#将爬取内容读入本地文件的第一种方法
#fhandle=open("D:/python3.5/1.html","wb")
#fhandle.write(get)
#fhandle.close()
#将爬取内容读入本地文件的第二种方法
#filename = urllib.request.urlretrieve("http://www.baidu.com",filename="D:/python3.5/2.html")
#urllib.request.urlcleanup()
#返回与当前环境的有关的信息
a = file.info()
#获取当前爬取网页的状态码,返回200为正确
b = file.getcode()
#获取所爬取的网页的额url地址
c = file.geturl()
#URL标准中只会允许一部分ASCII字符比如数字、字母、部分符号等
#其他字符,如汉字不符合标准,这时需要URL编码来解决
#编码解码代码如下
#http%3A//www.baidu.com
#http://www.haidu.com
d = urllib.request.quote("http://www.baidu.com")
print(d)
e = urllib.request.unquote("http://www.haidu.com")
print(e)
print(a)
print(b)
print(c)
print(get)
print(getline)
推荐阅读
-
python-快速使用urllib爬取网页(4-GET)
-
python-快速使用urllib爬取网页(8-URLError)
-
python-快速使用urllib爬取网页(7-DebugLog)
-
python-快速使用urllib爬取网页(2-Headers属性)
-
Python使用urllib,urllib3,requests库爬取网页
-
01精通Python网络爬虫——快速使用Urllib爬取网页
-
python-快速使用urllib爬取网页(1)
-
python-快速使用urllib爬取网页(3-超时异常)
-
Python爬虫学习之路(一)—— 使用Urllib爬取网页
-
01Python爬虫---快速使用Urllib爬取网页