python爬虫urllib的request与parse方法

在爬虫前,需要知道这两个知识点!!!
字符串转字节类型
str --> bytes
encode()
字节类型转字符串
bytes --> str
decode()

1.以一个简单的例子讲解urllib.request方法

read 读取相应内容,内容
geturl 获取请求的url
getheaders 获取头部信息
getcode 获取状态码
readlines 按行读取,返回列表,都是字节类型

1.1获取百度的网页代码

import urllib.request
url = "https://www.baidu.com"
response = urllib.request.urlopen(url)

#打印出来是二进制
print(response.read().decode('utf8'))

# 获取状态码
print(response.getcode())

# 获取响应头
print(response.getheaders())

# 获取url
print(response.geturl())

# 把读取到的内容保存起来的两种方法

# 第一种方法w以字符串写入
with open("baidu.html","w",encoding='utf8') as f:
    f.write(response.read().decode('utf8'))

#第二种方法 wb以二进制写入
with open("baidu.html","wb") as f:
    f.write(response.read())

1.2爬取百度里面的图片为例子

import urllib.request
image_url = 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=
1561806237168&di=319407f10b4c55baf1d5b905d8a2f20a&imgtype=0&src=http%3A%2F%2
Fimg2.ph.126.net%2F2zB3_wWPXlEW0RdwQa8d6A%3D%3D%2F2268688312388037455.jpg'

#第一种方法
# response = urllib.request.urlopen(image_url)
#像图片只能写入到本地二进制的格式
# with open('qing.jpg','wb') as fp:
#     fp.write(response.read())

#第二种方法
urllib.request.urlretrieve(image_url,'chun.jpg')

2.以一个简单的例子讲述parse方法

quote url编码函数,将中文进行转化为%xxx
unquote url解码函数,将%xxx转化为指定字符
urlencode 给一个字典,将字典拼接为query_string

2.1自己写一个url进行操作

import urllib.parse
url = 'http://www.baidu.com/index.html'
#http://www.baidu.com/index.html?name=goudan&age=18&sex=nv&height=180
name = '狗蛋'
age = 18
sex = '女'
height = '180'
data={
    'name':name,
    'age':age,
    'sex':sex,
    'height':height
}
#第一种方法
query_string = urllib.parse.urlencode(data)
print(query_string)

#第二种方法
#遍历字典
# it = []
# for k,v in data.items():
#     it.append(k+'='+str(v))
# query_string = '&'.join(it)

url = url+'?'+query_string
print(url)

这就是request与parse方法!!!

你可能感兴趣的:(python爬虫)