使用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'))
运行结果
使用urllib发起请求- urlopen发起请求read/decode/getcode/info/geturl-post请求抽屉网相关推荐
- jq中法可以发起ajax请求的方法有,jQuery实现监控页面所有ajax请求的方法
本文实例讲述了jQuery实现监控页面所有ajax请求的方法.分享给大家供大家参考,具体如下: 你是不是有遇到这样的问题:页面发起两个ajax请求,希望它们都成功以后,再做一个动作? 很容易想到的解决 ...
- Vue3(撩课学院)笔记09-axios简介,发起get请求的两种方式,发起带参的get及post请求,发起并发请求,并发请求结果将数组展开,axios全局配置,axios配置及封装,请求和响应拦截
1.axios简介 axios是基于promise可以用于浏览器和node.js的网络请求库,在服务器端使用原生node.js,在浏览气短使用ajax(即XMLHttpRequests) 2.axio ...
- urllib库的urlopen详解
一 爬虫基本库 Python提供了功能齐全的类库来帮助我们完成网络请求.最基础的HTTP库有urllib.httplib2.requests.treq等. urllib库,只需要关心请求的链接是什么, ...
- 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 ...
- post请求需要加密吗_Python接口自动化Requets之http请求(2)
本章内容: 1.Get请求的操作方法(带参数)2.Post请求的操作方法 GET请求操作: 接口文档如下: 先使用jmeter测试接口(作为参照): 1.接口参数: 返回的结果: 2.以下为pytho ...
- python网络爬虫系列(一)——urllib库(urlopen、urlretrieve、urlencode、parse-qs、urlparse和urlsplit、request.Request类)
urllib库 urllib库是Python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. 一.urlopen函数: 在Python3的url ...
- 一个Servlet同一时刻只有一个实例。 当多个请求发送到同一个Servlet,服务器会为每个请求创建一个新线程来处理。
Servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序. 相同点: 1. 不是独立的应用程序,没有main()方法. 2. 不是由用户调用,由另一个应用程序(容器)调用 ...
- Vue通过Axios向后台发送Post请求,浏览器Console提示405,后台显示Get请求不支持--解决办法
Vue通过Axios向后台发送Post请求,浏览器Console提示405,后台显示Get请求不支持–解决办法 问题场景: axios默认是发送get请求,我要给后台发送一组用户填写的表单数据,逻辑简 ...
- 微信小程序网络请求异常怎么办_监控微信小程序wx.request请求失败
在微信小程序里,与后台服务器交互的主要接口函数是wx.request(),用于发起 HTTPS 网络请求.其重要性不言而喻.然而,却经常遇到请求失败的问题,笔者特意谷歌"wx.request ...
- android post请求添加公共参数_XHttp2 一个功能强悍的网络请求库
XHttp2 一个功能强悍的网络请求库,使用RxJava2 + Retrofit2 + OKHttp组合进行封装.还不赶紧点击使用说明文档,体验一下吧! 项目地址 关于我 https://github ...
最新文章
- Angular CDK Overlay 弹出覆盖物
- Kali渗透测试——UPNP网关发现工具Miranda
- Nginx的继续深入(日志轮询切割,重写,负载均衡等)
- SafeSEH原理与对抗
- golang 关闭制定名称的 tomcat_Tomcat原理详解及请求过程
- leetcode 73 矩阵置零 Python
- code first基础
- [转]android-学习笔记之按钮事件
- web公选课第三节2020.5.18
- SQL Server安装计划
- 二分图相关结论及口胡证明
- Java停止线程的方式
- Redis集群一致性Hash效果的代码演示
- 第一节:什么是ES6?新手该如何理解
- python做什么方向好_Python工程师的择业方向有哪些?你想好做什么工作了吗?
- python爬虫更改ip_Python小说爬虫,有目录,有文字极简处理,还有IP解锁方式
- 基于P2P终结者的ARP欺骗攻击实验
- 《XTWJ自强不息十月纯净版》ISO下载
- IE浏览器网址被劫持
- TOEFL战地手记听力FAQ