requests与urllib.request
requests很明显,在写法上与urllib.request不同,前者多一个 S.
导入包时:
import requests
import urllib.request
urllib.request请求模块,用于打开和读取url
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
response.read()可以获取到网页的内容
timeout参数的使用在某些网络情况不好或者服务器端异常的情况会出现请求慢的情况,或者请求异常,有时也用来解决反爬,控制爬行速度。
response.status,response.getheaders()【response.headers】【response.info()】获取状态码以及头部信息。response.read()获得的是响应体的内容.
urlopen()只能用于简单的请求,它无法添加header信息。
urllib.request.Request(url) 注意大写。
使用data参数;
data = urllib.parse.urlencode(dict).encode(‘utf-8’)
使用data参数如果要传 必须传bytes(字节流) 类型的,如果是一个字典,先用 urllib.parse.urlencode() 编码。
request = urllib.request.Request(url = url,data = data,headers = headers,method = ‘POST’)
2.req = urllib.request.Request(url=url,data=data,method=‘POST’)
req.add_header(‘User-Agent’,'Mozilla/5.0) 添加头部信息
rulllib.request.ProxyHandler()设置代理,网站会检测某一段时间某个IP 的访问次数,访问次数过多,会禁止访问,使用代理安全系数也会相应提高。
urllib.error:包含提出有例外的urllib.request
urllib.parse:用于解析url
urllib.robotparser:用于解析robots.txt文件。
requests完全满足网络爬虫的需求,他是在urllib基础上进一步封装,具备urllib的全部功能。
安装 pip install requests
基于http的post,get请求
r = requests.get(url, params=d) 参数d表示值为字符串的字典,d不是必须的
r = requests.post(url,data=data)post请求需 设置请求参数data
请求对象response相应内容
r.status_code:响应状态码
r.raw:原始响应体,使用r.raw.read()读取
r.content:字节方式的响应体,需要进行解码
r.text:字符串形式的响应体,会自动根据响应头部的字符编码进行解码
r.headers:以字典对象存储服务器响应头,字典见键不区分大小写,若键不存在返回none。
r.json():Requests中内置的json解码器
r.raise_for_status():请求失败,抛出异常
r.url:获取请求链接
r.cookies:获取请求后的cookie
r.encoding:获取编码格式
---------------------
作者:秋瑾先生
requests与urllib.request的更多相关文章
- Python3 内置http.client,urllib.request及三方库requests发送请求对比
如有任何学习问题,可以添加作者微信:lockingfree 更多学习资料请加QQ群: 822601020获取 HTTP,GET请求,无参 GET http://httpbin.org/get Pyth ...
- 爬虫小探-Python3 urllib.request获取页面数据
使用Python3 urllib.request中的Requests()和urlopen()方法获取页面源码,并用re正则进行正则匹配查找需要的数据. #forex.py#coding:utf-8 ' ...
- Pthon常用模块之requests,urllib和re
urllib Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了. 它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务, 下面是简单的使用urllib来 ...
- py3+requests+re+urllib,爬取并下载不得姐视频
实现原理及思路请参考我的另外几篇爬虫实践博客 py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图:http://www.cnblogs.com/UncleYong/p/6892688. ...
- 爬虫入门【1】urllib.request库用法简介
urlopen方法 打开指定的URL urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, ca ...
- Python3——根据m3u8下载视频(上)之urllib.request
干活干活,区区懒癌已经阻挡不了澎湃的洪荒之力了...... 运行环境:Windows基于python3.6 ---------------------------------------------- ...
- 爬虫初探(1)之urllib.request
-----------我是小白------------ urllib.request是python3自带的库(python3.x版本特有),我们用它来请求网页,并获取网页源码. # 导入使用库 imp ...
- 关于python3.X 报"import urllib.request ImportError: No module named request"错误,解决办法
#encoding:UTF-8 import urllib.request url = "http://www.baidu.com" data = urllib.request.u ...
- urllib.request
[urllib.request] 1.urlopen结果保存在内存. 2.ulrretrieve结果保存到文件. 3.response有read方法. 4.可以创建Request对象. 5.发送Pos ...
随机推荐
- CISCO设备配置SSH 登陆
1. 设置设备域名CISCO ip domain name CISCO2.创建密钥Server(config)#crypto key generate rsa The name for the key ...
- 《ABCD组》实验十一 团队作业7:团队项目设计完善&编码
<ABCD组>实验十一 团队作业7:团队项目设计完善&编码 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...
- 用CSS 实现 非浮动元素的 水平居中/垂直居中/水平垂直居中
一.水平居中 (1)行内元素解决方案 只需要把行内元素包裹在一个属性display为block的父层元素中,并且把父层元素添加如下属性即可: .parent { text-align:center ...
- vscode源码编译疑难问题
最近把原来老的源码merge到了新的1.15版本源码,以前的依赖问题会导致各种错误,Loading "gc-signals" failed啦,Error: %1 is not a ...
- 在jQuery中使用自定义属性
在jquery中 自定义属性及值默认以下都是在class='acitve'对象中 进行自定义属性操作:1,自定义属性格式:data-xxxx2,获取该属性值: $('.active').data('x ...
- Crontab 定时任务格式参数
crontab 定时执行 任务 格式: * * * * *-) 小时(-) 日(-) 月份(-) 星期(-6) 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条 ...
- 洛谷P1419寻找段落
题目 单调队列+前缀和 #include <bits/stdc++.h> #define N 101001 using namespace std; int n, s, t; int da ...
- The Boot Process at a Glance x86/x64系统启动过程解析
哥又来干体力活了.人肉翻译一下: The Boot Process at a Glance This section explains the boot process in sufficient d ...
- yii2.0场景的简单使用
一.规则中使用场景规则场景的使用模型层public function rules(){ return [ [['name','product_id'],'required','on'=>'add ...
- bochs调试命令
Bochs几条基本指令: 通过物理地址查看内存时,可以不加参数'/nuf': 其中n指定显示的单元数,默认是1: u 指定每个显示单元的大小(b表示字节.h表示字(2字节).w表示双字(4字节)),默 ...