Requests 是用python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。

通过pip安装

pip install requests

一、最基本的get请求

 import requests

 req=requests.get('https://www.cnblogs.com/')#普通的get请求
print(req.text)#解析网页标签,查找头域head中的meta标签<meta charset="utf-8" />
print(req.content)#出来的中文有些是乱码,需要解码
print(req.content.decode('utf-8'))#用decode解码
 requests.get(‘https://github.com/timeline.json’) #GET请求
requests.post(“http://httpbin.org/post”) #POST请求
requests.put(“http://httpbin.org/put”) #PUT请求
requests.delete(“http://httpbin.org/delete”) #DELETE请求
requests.head(“http://httpbin.org/get”) #HEAD请求
requests.options(“http://httpbin.org/get”) #OPTIONS请求

不但GET方法简单,其他方法都是统一的接口样式

二、用post获取需要用户名密码登陆的网页
 import requests

 postdata={
'name':'estate',
'pass':''
}#必须是字典类型
req=requests.post('http://www.iqianyue.com/mypost',data=postdata)
print(req.text)#进入登陆后的页面 yonghu=req.content#用户登陆后的结果
f=open('1.html','wb')#把结果写入1.html
f.write(yonghu)
f.close()
http://www.iqianyue.com/mypost
进入这个网站需要登陆,我们要定义一个字典输入用户名和密码

运行没有报错可以把结果写在一个HTML文件中

 <html>
<head>
<title>Post Test Page</title>
</head> <body>
<form action="" method="post">
name:<input name="name" type="text" /><br>
passwd:<input name="pass" type="text" /><br>
<input name="" type="submit" value="submit" />
<br />
you input name is:estate<br>you input passwd is:123456</body>
</html>

三、用headers针对反爬

 import requests

 headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}#请求头发送请求,多个头域可以直接在字典中添加
req=requests.get('http://maoyan.com/board',headers=headers)#传递实参
print(req.text)

User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

有些网页进去后会出现403禁止访问,我们需要进入网页查找到hesders中的User-Agent并添加到字典中,读取时要传递实参,运行后并可爬取猫眼电影网页信息

四、用cookies跳过登陆

 import requests

 f=open('cookies.txt','r')
#初始化cookies字典变量
cookies={}
#用for循环遍历切割。按照字符;进行切割读取,返回列表数据然后遍历
for line in f.read().split(';'):
#split参数设置为1,将字符串切割成两部分
name,value=line.split('=',1)
#为字典cookies添加内容
cookies[name] = value
url='https://www.cnblogs.com/'
res=requests.get(url,cookies=cookies)
data=res.content
f1=open('bokeyuan.html','wb')
f1.write(data)
f1.close()
f.close()

先输入用户名和密码登陆网页后获取网页的cookies,复制粘贴到新建的文本中,创建一个空的cookies字典,用for循环遍历切割。cookies中的字段按照字符 ; 进行切割读取成两部分。

运行后把结果写到命名为bokeyuan的html文件中,进入html文件直接点击网页图标即可进入登陆后的页面

五、代理IP

 import requests

 proxies={
'HTTP':'183.129.244.17:10080'
}
req=requests.get('https://www.taobao.com/',proxies=proxies)
print(req.text)

采集时为避免被封IP,经常会使用代理。requests也有相应的proxies属性。我们可以在网页上查找代理IP,在字典中输入代理IP地址和端口,需要多个IP可以直接在字典后面添加。如果代理需要账户和密码,则需这样:

 proxies = {
"http": "http://user:pass@10.10.1.10:3128/",
}

六、超时设置

 import requests

 req=requests.get('https://www.taobao.com/',timeout=1)
print(req.text)
timeout 仅对连接过程有效,与响应体的下载无关

以上为Requests库的基础操作,后续再做补充......

python第三方库Requests的基本使用的更多相关文章

  1. python第三方库requests简单介绍

    一.发送请求与传递参数 简单demo: import requests r = requests.get(url='http://www.itwhy.org') # 最基本的GET请求 print(r ...

  2. python第三方库requests详解

    Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...

  3. Python第三方库requests的编码问题

    PS:这个解决方法可能很简单,但是这是平时的一些细节问题,所以有必要提醒一下! 首先代码不多,就是通过get方法去获取豆瓣首页信息,如图:但是会报UnicodeEncodeError: 'gbk' c ...

  4. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

  5. [爬虫]Windows下如何安装python第三方库lxml

    lxml是个非常有用的python库,它可以灵活高效地解析xml与BeautifulSoup.requests结合,是编写爬虫的标准姿势. 但是,当lxml遇上Windows,简直是个巨坑.掉在安装陷 ...

  6. 【Python基础】安装python第三方库

    pip命令行安装(推荐) 打开cmd命令行 安装需要的第三方库如:pip install numpy 在安装python的相关模块和库时,我们一般使用“pip install  模块名”或者“pyth ...

  7. python第三方库自动安装脚本

    #python第三方库自动安装脚本,需要在cmd中运行此脚本#BatchInstall.pyimport oslibs = {"numpy","matplotlib&qu ...

  8. 爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,loads,dump,load方法介绍

    爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,load ...

  9. Windows下如何安装python第三方库lxml

    lxml是个非常有用的python库,它可以灵活高效地解析xml,与BeautifulSoup.requests结合,是编写爬虫的标准姿势. 参考 Windows下如何安装python第三方库lxml ...

随机推荐

  1. java 创建string对象机制 字符串缓冲池 字符串拼接机制 字符串中intern()方法

    字符串常量池:字符串常量池在方法区中 为了优化空间,为了减少在JVM中创建的字符串的数量,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM会首先检查字符串常量池.如果字符串已经存在池中,就 ...

  2. 深入剖析Java中的装箱和拆箱(缓存池技术)

    以下是本文的目录大纲: 一.什么是装箱?什么是拆箱? 简单一点说,装箱就是  自动将基本数据类型转换为包装器类型:拆箱就是  自动将包装器类型转换为基本数据类型. 二.装箱和拆箱是如何实现的 1:反编 ...

  3. C语言冒泡(起泡)排序与选择排序的循环条件区别

    冒泡排序(写法1): i = 0; i < n-1; ++i{ flag = true; j = 0; j < n-1-i; ++j{//从前面开始冒泡 if( arr[j] < a ...

  4. OC学习笔记

    备注:这里只是个人的观点,有的地方也是copy,多多指教,个人笔记,有侵犯你们版权的地方还望海涵!!! ARC单例模式的实现 使用alloc方法初始化一个类的实例的时候,默认是调用了 allocWit ...

  5. JVM Optimization

    架构图 基本概念说明 堆(heap):数据存储,对象实例:空间往上增长,线程共享区:大小可通过-Xmx和-Xms配置 新生代(Young Generation):划分为Eden Space和两个Sur ...

  6. Java语法基础学习DayFifteen(IO续)

    一.缓冲流(处理流的一种) 1.作用:可以提高文件操作的效率 2.使用BufferedInputStream和BufferedOutputStream实现非文本文件的复制 特点:flush()方法 代 ...

  7. js 异常判断

    /** * 预处理response * @param rep */ function validateRep(rep) { try{ if(rep.status==false){ layer.open ...

  8. git不添加.idea等IDE配置文件夹

    git不添加.idea等IDE配置文件夹由于.idea(intellJ,pycharm)的IDE文件夹很常出现,建议将gitignore设置为全局. git config --global core. ...

  9. 入门项目 A3 src 主代码

    import json # 调度内置 json 模块,用于数列化输入输出,相比eval,功能更全面,融合度更高from conf import settings # 从配置文件configure (包 ...

  10. 利用教育邮箱注册JetBrains产品(pycharm、idea等)的方法

    转载:http://www.cnblogs.com/wang-meng/p/8887436.html 1,申请邮箱   地址为:http://mdu.edu.rs/  邮箱的前缀可以改成自己喜欢的字符 ...