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 ...
随机推荐
- MySQL分布式数据库架构:分库、分表、排序、分页、分组、实现教程
MySQL分库分表总结: 单库单表 : 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 单库多表 : 随着用户数量的增加, ...
- html简单代码示例
运行示例: 代码内容如下: <!DOCTYPE html> <html> <head> <title>九九乘法口诀表</title> &l ...
- Loadrunner 计算保留两位小数不四舍五入
有时候在测试过程中会截取返回值,当你截取的值不是最终的值,需要进行计算后才能使用并且需要保留两位小数,不进行四舍五入的计算: 此时 我使用了各种办法,但是最终我采用了一种最直接,最暴力的方法就是先乘后 ...
- unity和lua开发游戏常备技能
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 我的个人博客 一.使用制作滑动列表:使用UILayout做虚拟列表 ui.list = base:findcom(" ...
- 新闻系统——VS制作自己的模板
我们在做机房管理的项目时,就用过模板方法,建立一个模板,这样就会省很多事,我们不需要每次都添加同样的东西,比如我们的类窗体,就可以制作一个模板,将注释和需要引用的控件直接添加上,这可以省去很大的麻烦, ...
- java中创建对象的方式
Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码 使用new关键字 } → 调用了构造函数 使用Class类的newInstance方法 } → 调用了构造函数 使用Construc ...
- sql 索引的使用 转载:https://www.cnblogs.com/xiaoyangjia/p/11267191.html#mysql_performance
B-Tree索引的3个限制: 如果不是按照索引的最左列开始查找,则无法使用索引 不能跳过索引中的列.如果联合索引(a,b,c) ,如果使用条件a和c条件查询,那么只能使用索引的第一列a 如果查询中有某 ...
- 洛谷P2396 yyy loves Maths VII【状压dp】
题目:https://www.luogu.org/problemnew/show/P2396 题意:有n个数,每次选择一个表示走$a[i]$步,每个数只能选一次. 最多有两个厄运数字,如果走到了厄运数 ...
- 发布一个在Web下输入密码时提示大写锁定键的Jquery插件
功能介绍:在Web下输入密码时提示大写锁定键,封装成jq插件方便有需要的同学!使用:$("#txtPWD").capsLockTip();截图预览:代码(2012-05-03 10 ...
- php MySQL 选择数据库
在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库. 从命令提示窗口中选择MySQL数据库 在 mysql> 提示窗口中可以很简单的选择特定的数据库.你 ...