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方法!!!

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值