引入本文件需要用到的包

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'))

运行结果

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

  1. jq中法可以发起ajax请求的方法有,jQuery实现监控页面所有ajax请求的方法

    本文实例讲述了jQuery实现监控页面所有ajax请求的方法.分享给大家供大家参考,具体如下: 你是不是有遇到这样的问题:页面发起两个ajax请求,希望它们都成功以后,再做一个动作? 很容易想到的解决 ...

  2. Vue3(撩课学院)笔记09-axios简介,发起get请求的两种方式,发起带参的get及post请求,发起并发请求,并发请求结果将数组展开,axios全局配置,axios配置及封装,请求和响应拦截

    1.axios简介 axios是基于promise可以用于浏览器和node.js的网络请求库,在服务器端使用原生node.js,在浏览气短使用ajax(即XMLHttpRequests) 2.axio ...

  3. urllib库的urlopen详解

    一 爬虫基本库 Python提供了功能齐全的类库来帮助我们完成网络请求.最基础的HTTP库有urllib.httplib2.requests.treq等. urllib库,只需要关心请求的链接是什么, ...

  4. DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器...

    DNS反射放大攻击分析 摘自:http://www.shaojike.com/2016/08/19/DNS%E6%94%BE%E5%A4%A7%E6%94%BB%E5%87%BB%E7%AE%80%E ...

  5. post请求需要加密吗_Python接口自动化Requets之http请求(2)

    本章内容: 1.Get请求的操作方法(带参数)2.Post请求的操作方法 GET请求操作: 接口文档如下: 先使用jmeter测试接口(作为参照): 1.接口参数: 返回的结果: 2.以下为pytho ...

  6. python网络爬虫系列(一)——urllib库(urlopen、urlretrieve、urlencode、parse-qs、urlparse和urlsplit、request.Request类)

    urllib库 urllib库是Python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. 一.urlopen函数: 在Python3的url ...

  7. 一个Servlet同一时刻只有一个实例。 当多个请求发送到同一个Servlet,服务器会为每个请求创建一个新线程来处理。

    Servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序.  相同点:  1. 不是独立的应用程序,没有main()方法.  2. 不是由用户调用,由另一个应用程序(容器)调用 ...

  8. Vue通过Axios向后台发送Post请求,浏览器Console提示405,后台显示Get请求不支持--解决办法

    Vue通过Axios向后台发送Post请求,浏览器Console提示405,后台显示Get请求不支持–解决办法 问题场景: axios默认是发送get请求,我要给后台发送一组用户填写的表单数据,逻辑简 ...

  9. 微信小程序网络请求异常怎么办_监控微信小程序wx.request请求失败

    在微信小程序里,与后台服务器交互的主要接口函数是wx.request(),用于发起 HTTPS 网络请求.其重要性不言而喻.然而,却经常遇到请求失败的问题,笔者特意谷歌"wx.request ...

  10. android post请求添加公共参数_XHttp2 一个功能强悍的网络请求库

    XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装.还不赶紧点击使用说明文档,体验一下吧! 项目地址 关于我 https://github ...

最新文章

  1. Angular CDK Overlay 弹出覆盖物
  2. Kali渗透测试——UPNP网关发现工具Miranda
  3. Nginx的继续深入(日志轮询切割,重写,负载均衡等)
  4. SafeSEH原理与对抗
  5. golang 关闭制定名称的 tomcat_Tomcat原理详解及请求过程
  6. leetcode 73 矩阵置零 Python
  7. code first基础
  8. [转]android-学习笔记之按钮事件
  9. web公选课第三节2020.5.18
  10. SQL Server安装计划
  11. 二分图相关结论及口胡证明
  12. Java停止线程的方式
  13. Redis集群一致性Hash效果的代码演示
  14. 第一节:什么是ES6?新手该如何理解
  15. python做什么方向好_Python工程师的择业方向有哪些?你想好做什么工作了吗?
  16. python爬虫更改ip_Python小说爬虫,有目录,有文字极简处理,还有IP解锁方式
  17. 基于P2P终结者的ARP欺骗攻击实验
  18. 《XTWJ自强不息十月纯净版》ISO下载
  19. IE浏览器网址被劫持
  20. TOEFL战地手记听力FAQ

热门文章

  1. 高中数学:数列求和的8种常用方法(最全)
  2. c 语言小游戏坦克大战,C++实现坦克大战小游戏EGE图形界面
  3. 你还不知道高情商表现怎么表现?
  4. 怎样用python获取财经网新闻
  5. 华为0基础——名字的美丽度
  6. 数学传奇1——群星闪耀时
  7. 火星探险 (Mars)
  8. 2014c语言考试题库,2014年腾讯校园招聘C语言考试真题
  9. SEO网站内容优化的6点干货分享分享-飞鱼SEO
  10. c语言程序填空 功能:输出结果为:,C语言程序填空题