使用urllib发起请求- urlopen发起请求read/decode/getcode/info/geturl-post请求抽屉网

 引入本文件需要用到的包
import urllib
from urllib import request, parse, response

一.使用urllib发起请求

.read() 函数读取响应中的响应数据

decode()  将bytes类型的数据转换为str类型

rep = request.urlopen('http://www.baidu.com')
# .read() 函数读取响应中的响应数据
# print(rep.read())
result = rep.read()
# decode()  将bytes类型的数据转换为str类型
html = result.decode('utf-8')
# print(html)
  获取响应状态码
print(rep.getcode())
 获取响应头信息
print(rep.info())
 获取url地址
print(rep.geturl())

二.携带请求头发送请求

  1.获取百度的网页源代码

构建请求对象

req = request.Request('http://www.baidu.com', headers={
    'User-Agent': 'python2.7',
    'Host': 'www.baidu.com'
})
  .使用urlopen函数,发起请求
  参数直接填写请求对象
rep = request.urlopen(req)
print(rep.read().decode('utf-8'))

 2.发起post请求,携带参数

  ---------------------------------抽屉网-------------------

 a.携带的数据
data = {"phone": "8615896901897", "password": "qweqweqwe1", "oneMonth": "1"}
 b.假如请求数据中有中文,需要对中文进行编码
 encode将携带的参数转换为bytes类型
data = parse.urlencode(data).encode('utf-8')
  c.请求头
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"}
 d. 构建请求对象
req = request.Request(
    url='http://dig.chouti.com/login',
    data=data,
    headers=headers
)
# 发起请求
rep = request.urlopen(req)
print(rep.read().decode('utf-8'))


完整代码

# -*- coding:utf-8 -*-
# urllib  urllib2
import urllib
from urllib import request, parse, response

# 使用urllib发起请求
rep = request.urlopen('http://www.baidu.com')
# .read() 函数读取响应中的响应数据
# print(rep.read())
result = rep.read()
# decode()  将bytes类型的数据转换为str类型
html = result.decode('utf-8')
# print(html)

# 获取响应状态码
print(rep.getcode())
# 获取响应头信息
print(rep.info())
# 获取url地址
print(rep.geturl())


# 携带请求头发送请求
# 1.构建请求对象
req = request.Request('http://www.baidu.com', headers={
    'User-Agent': 'python2.7',
    'Host': 'www.baidu.com'
})
# 2.使用urlopen函数,发起请求
# 参数直接填写请求对象
rep = request.urlopen(req)
print(rep.read().decode('utf-8'))

# ---------------------------------抽屉网----------
# 3.发起post请求,携带参数
# 携带的数据
data = {"phone": "8615896901897", "password": "qweqweqwe1", "oneMonth": "1"}
# 假如请求数据中有中文,需要对中文进行编码
# encode将携带的参数转换为bytes类型
data = parse.urlencode(data).encode('utf-8')
# 请求头
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"}
# 构建请求对象
req = request.Request(
    url='http://dig.chouti.com/login',
    data=data,
    headers=headers
)
# 发起请求
rep = request.urlopen(req)
print(rep.read().decode('utf-8'))

运行结果










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值