'''
爬虫的使用
第一点:就是Urlib库 常用的是 urlib.request,urlib.err,urlib.parse
这里用python3常用
urlopen
urlencode
quote
Request
file.read()/file.readlines()读取全部内容 内容赋值为字符串
file.readline()读取一行内容 内容赋值为列表变量
'''
# 使用urllib.request导入模块
import urllib.request
# (2)使用urlib.request.urlopen打开并爬取一个网页,
file = urllib.request.urlopen("https://www.baidu.com")
# (3)read用于全部内容 readline用于一行内容
data = file.read()
dataline = file.readline()
# (4)
print(dataline)
# (5)
print(data)
# open()函数打开文件。 并用wb即二进制写入的方式打开,打开后将句柄赋给handle
# 用write写入对应数据data
fhandle = open("G:/百度网盘/精通Python网络爬虫源码/书中源码/1.html", "wb")
fhandle.write(data)
fhandle.close()
# 主要的目的就是存储爬取文件而又简单的方法在urlib.request里面的urlretrieve()
# 其中格式是urllib.request.urlretrieve(url(网址),filename=“本地文件地址”)
import urllib.request
urllib.request.urlretrieve("https://www.baidu.com",
filename=r"G:/百度网盘/精通Python网络爬虫源码/书中源码/1.html")
# 其中缺点是产生一些环境 如果想清除这些缓存信息可以用urlcleanup()进行清除
# urllib.request.urlcleanup()
# 返回与当前所爬取的环境相关信息,我们可以使用info()返回
file = urllib.request.urlopen("https://www.baidu.com")
file.info()
# 如果想爬取当前的状态码就可以用getcode()
file = urllib.request.urlopen("https://www.baidu.com")
file.getcode()
# 获取当前所爬取得url地址 ,我们可以使用geturl()来实现
file = urllib.request.urlopen("https://www.baidu.com")
file.geturl()
# 网址的url标准中只允许一部分ASCLL字符比如数字,字母,部分符号等比如汉字不符合URL标准
# 所以我们在URL中使用一些其中不符合标准的字符就会出现问题,所以需要进行编码解决。
# urllib.request.quote(url)进行编码
file_2=urllib.request.quote("hhtp://www.baidu.com.cn")
print(file_2)
# 结果:hhtp%3A//www.baidu.com.cn
# 对应的就是解码 urllib.request.unquote(url)进行解码
file_3=urllib.request.unquote("hhtp%3A//www.baidu.com.cn")
print(file_3)
# 实例如下:
import urllib.request
file = urllib.request.urlopen("https://www.baidu.com")
a_info=file.info()
b_getcode=file.getcode()
c_geturl=file.geturl()
print(a_info)
print(b_getcode)
print(c_geturl)
file_2=urllib.request.quote("http://www.baidu.com.cn")
print(file_2)
file_3=urllib.request.unquote("http%3A//www.baidu.com.cn")
print(file_3)