requests基础
爬虫的基本原理:爬虫本质上是模拟人浏览信息的过程,只不过他通过计算机来达到快速抓取筛选信息的目的。所以我们想要写一个爬虫,最基本的就是要将我们需要抓取信息的网页原原本本的抓取下来。这个时候就要用到requests库了。
1、requests的安装
requests库本质上就是模拟了我们用浏览器打开一个网页,发起请求是的动作。它能够迅速的把请求的html源文件保存到本地。
requests安装比较简单,pip install requests
2、requests的使用
开始要导入 Requests 模块:
import requests
然后,尝试获取某个网页。
r = requests.get('https://douban.com')
现在,有一个名为 r
的Response 对象。可以从这个对象中获取所有我们想要的信息。
Requests 简便的 API 意味着所有 HTTP 请求类型都是显而易见的。例如,你可以这样发送一个 HTTP POST 请求:
r = requests.post("http://httpbin.org/post")
其他 HTTP 请求类型:PUT,DELETE,HEAD 以及 OPTIONS
r = requests.put("http://httpbin.org/put")
r = requests.delete("http://httpbin.org/delete")
r = requests.head("http://httpbin.org/get")
r = requests.options("http://httpbin.org/get")
传递 URL 参数
requests.get(url,params=None,**kwargs)方法
#这个方法可以接收三个参数,其中第二个默认为None 第三个可选
def get(url, params=None, **kwargs)
#作用是模拟发起GET请求
Sends a GET request.
#模拟获取页面的url链接
:param url: URL for the new :class:Request object.
#额外参数 字典或字节流格式,可选
:param params: (optional) Dictionary or bytes to be sent in the query string for the :class:Request.
# 十二个控制访问参数,比如可以自定义header
:param **kwargs: Optional arguments that request takes.
# 返回一个Response对象
:return: :class:Response <Response> object
:type: requests.Response
下面着重讲一下 **kwargs 这个参数
kwargs: 控制访问的参数,均为可选项 params : 字典或字节序列,作为参数增加到url中 data : 字典、字节序列或文件对象,作为Request的内容 json : JSON格式的数据,作为Request的内容 headers : 字典,HTTP定制头 cookies : 字典或CookieJar,Request中的cookie auth : 元组,支持HTTP认证功能 files : 字典类型,传输文件 timeout : 设定超时时间,秒为单位 proxies : 字典类型,设定访问代理服务器,可以增加登录认证 allow_redirects : True/False,默认为True,重定向开关 stream : True/False,默认为True,获取内容立即下载开关 verify : True/False,默认为True,认证SSL证书开关 cert : 本地SSL证书路径 url: 拟更新页面的url链接 data: 字典、字节序列或文件,Request的内容 json: JSON格式的数据,Request的内容
例如:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload) #结果
print(r.url)
http://httpbin.org/get?key2=value2&key1=value1
注意字典里值为 None
的键都不会被添加到 URL 的查询字符串里。
还可以将一个列表作为值传入:
payload = {'key1': 'value1', 'key2': ['value2', 'value3']} r = requests.get('http://httpbin.org/get', params=payload)
print(r.url)
http://httpbin.org/get?key1=value1&key2=value2&key2=value3
响应内容:
我们能读取服务器响应的内容。
requests.Response
- status_code状态码
- headers应答的http头
- json应答的json数据
- text应答的Unicode编码的文本
- content应答的字节流数据
- cookies应答的cookies.自动处理。
常用的两个控制访问参数:
a. 假设我们需要在GET请求里自定义一个header头文件:
import requests hd = {'User-agent':''}
r = requests.get('http://www.baidu.com', headers=hd)
print(r.request.headers)
'''
OUT:
{'User-agent': '123', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive
'}
'''
b. 假设我们要自定义一个代理池
pxs = { 'http': 'http://user:pass@10.10.10.1:1234',
'https': 'https://10.10.10.1:4321' }
r = requests.get('http://www.baidu.com', proxies=pxs)
3、requests抓取网页的通用框架
import requests def getHtmlText(url):
try:
r = requests.get(url, timeout=30)
# 如果状态码不是200 则应发HTTOError异常
r.raise_for_status()
# 设置正确的编码方式
r.encoding = r.apparent_encoding
return r.text
except:
return "Something Wrong!"
requests基础的更多相关文章
- 从0开始学爬虫4之requests基础知识
从0开始学爬虫4之requests基础知识 安装requestspip install requests get请求:可以用浏览器直接访问请求可以携带参数,但是又长度限制请求参数直接放在URL后面 P ...
- 爬虫简介、requests 基础用法、urlretrieve()
1. 爬虫简介 2. requests 基础用法 3. urlretrieve() 1. 爬虫简介 爬虫的定义 网络爬虫(又被称为网页蜘蛛.网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程 ...
- 小白学 Python 爬虫(17):Requests 基础使用
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- Python爬虫系列(二):requests基础
1.发送请求: import requests # 获取数据#r是一个 response 对象.包含请求返回的内容r = requests.get('https://github.com/timeli ...
- 1、requests基础
一.升级pip版本的命令 : python -m pip install --upgrade pip 二.requests安装 windows系统系cmd运行 pip install request ...
- python requests 基础学习
首先,Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 不友好.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来 ...
- 爬虫3 requests基础之下载图片用content(二进制内容)
res = requests.get('http://soso3.gtimg.cn/sosopic/0/11129365531347748413/640') # print(res.content) ...
- 爬虫3 requests基础之 乱码编码问题
import requests res = requests.get('http://www.quanshuwang.com') res.encoding = 'gbk' print(res.text ...
- 爬虫3 requests基础2 代理 证书 重定向 响应时间
import requests # 代理 # proxy = { # 'http':'http://182.61.29.114.6868' # } # res = requests.get('http ...
- 爬虫3 requests基础
import requests # get实例 # res = requests.get('http://httpbin.org/get') # # res.encoding='utf-8' # pr ...
随机推荐
- 布局类,让多个div在一行显示
原文链接:http://www.divcss5.com/wenji/w472.shtml
- eclipse配置hadoop2.7.2开发环境并本地跑起来
先安装并启动hadoop,怎么弄见上文http://www.cnblogs.com/wuxun1997/p/6847950.html.这里说下怎么设置IDE来开发hadoop代码和调试.首先要确保你本 ...
- java图形用户界面边界布局管理器
总结:不同方向的组件,所用的板是不同的: package com.moc; //用布局写一个界面 ///运用边界布局 //2个按钮在北,2个按钮在南 //中央一个大按钮 //将同一方向的组件封装后布局 ...
- 1142 Maximal Clique
题意:给出一个图,定义这样一个结点子集subset,若subset中的任意两结点不都相邻,则称之为Not a Clique:若subset中的任意两结点都相邻,则称之为Clique:若subset中的 ...
- python's thirty day for me 异常处理
---恢复内容开始--- 程序的异常:报错之后程序终止. 异常处理搭配使用: l = ['创建老师','创建学校'] while True: try: for num,item in enumerat ...
- 第五章 bean的加载(待续)
·············
- Python 编码机制
python 编码转换 Python的编码机制,unicode, utf-8, utf-16, GBK, GB2312,ISO-8859-1 等编码之间的转换. 常见的编码转换分为以下几种情况: 自动 ...
- 「小程序JAVA实战」小程序视图之细说数据绑定(13)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-13/ 在前面的小节里面其实对数据绑定都有所了解了,在这次给老铁在好好说下数据绑定,看下它的方方面面 ...
- Django中favicon.ico文件的配置
默认情况下,浏览器访问一个网站的时候,同时还会向服务器请求“/favicon.ico”这个URL,目的是获取网站的图标. 若没有配置的话,Django就会返回一个404错误,并且浏览器接收到这个404 ...
- html-select
<html><head> <title>select选择标签</title> <meta charset="UTF-8"> ...