16爬虫:python中的requests简单使用(自定义)

理解request库的异常
requests.ConnectionError 网络连接异常,如DNS查询失败,拒绝连接等

requests.HTTPError: HTTP错误异常

requests.URLRequired: URL缺失异常

requests.TooManyRedirects: 超过最大重定向次数, 产生重定向异常

requests.ConnectTimeout: 远程连接超时异常

requests.Timeout: 请求URL超时, 产生超时异常

r.raise_for_status() 如果返回的状态码不是200, 则会产生requests。HTTPError异常

一、requests.get()使用

#Python 的标准库 urllib 提供了大部分 HTTP 功能,但使用起来较繁琐。
#通常,我们会使用另外一个优秀的第三方库:Requests,它的标语是:Requests: HTTP for Humans。


import requests#创建requests模块
reponse=requests.get("https://www.baidu.com/")#首先调用requests的get方法
<class 'requests.models.Response'>
#print(type(response))列表

reponse.encoding='utf-8'#转换中文

# 返回状态码
print(reponse.status_code)
200

# 打印网页的内容
print(response.text)#不需要解码就可以直接打印信息print(response.cookies)
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
结果如下

这里写图片描述

**requests库的基本方法:**

requests.request()     构造一个请求, 支撑以下各方法的基础方法
requests.get()    获取HTML网页的主要方法, 对应于HTTP的GET
requests.head()    获取HTML网页头信息的方法, 对应于HTTP的HEAD
requests.post()    向HTML网页提交POST请求, 对应于HTTP的POST
requests.put()    向HTML网页提交PUT请求, 对应于HTTP的PUT
requests.patch()    向HTML网页提交局部更新请求, 对应于HTTP的patch
requests.delete()    向HTML网页提交删除请求, 对应于HTTP的DELETE

二、请求头

import requests
#构建请求头,模拟浏览器访问
header={
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
}#header
reponse=requests.get('http://www.baidu.com/',headers=header)
print(reponse.content.decode('utf-8'))

三、post请求

import requests
#包装要发送的数据
data={
    'name':'zhang',
    'age':'18'
}
header={
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
}
#调用post()方法进行post请求
reponse=requests.post('http://httpbin.org/post',data=data,headers=header)#post
print(reponse.text)
返回结果如下:传递的name和age的值已经被接收
{
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {
    "age": "18", 
    "name": "zhang"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Content-Length": "17", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Host": "httpbin.org", 
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
  }, 
  "json": null, 
  "origin": "180.173.37.153", 
  "url": "http://httpbin.org/post"
}

四、代理的使用

import requests
proxy={
    'http':'122.114.31.177'
}
reponse=requests.get('http://www.baidu.com/',proxies=proxy)
print(reponse.status_code)

五、超时设置

from requests.exceptions import Timeout
try:
    reponse=requests.get('http://www.baidu.com/',timeout=0.001)
    print(reponse.status_code)
except Timeout:
    print("访问超时")
#request方法对应的requests库中的方法:

requests.get(url, params=None, **kwargs)
url: 用于获取页面的url链接

params:url中的额外参数, 字典或字节流格式, 可选

**kwargs: 12个控制访问的参数, 见以上

requests.head(url, **kwargs)
url: 拟获取页面的url链接

**kwargs:  13个控制访问的参数, 见以上

requests.post(url, data=None, json=None, **kwargs)
url: 拟更新的url链接

data: 字典,字节序列或文件, Requests的内容

json:JSON格式的数据,Requests的内容

**kwargs: 11个控制访问的参数

requests.put(url, data=None, **kawrgs)
url:拟更新页面的url链接

data: 字典, 字节序列或文件, Requests的内容

**kwargs: 12个控制访问的参数

requests.patch(url, data=None, **kwargs)
url: 拟更新页面的url链接

data: 字典,字节序列或文件, Requests的内容

**kwargs: 12个控制访问的参数

requests.delete(url, **kwargs)
url: 拟访问页面的url链接

**kwargs: 13个控制访问的参数



其中这些方法中,get方法是这六个方法中最常用的方法,应该熟练掌握

1.Requests模块介绍

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协
议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP
测试需求。
Requests是为人类编写的http库
安装: conda install requests 或者 pip install requests

2.Requests模块常见API使用

使用dir+help探索Requests模块
这里写图片描述
这里写图片描述
这里写图片描述

使用Requests发送http get请求
这里写图片描述

使用Requests模块实现http post请求
这里写图片描述

3.设置请求头信息模拟浏览器访问
这里写图片描述
4使用代理IP
这里写图片描述
4、Python爬虫简介
网络爬虫:从互联网网页中获取信息数据的程序、过程
爬取 Crawling:下载包含感兴趣数据的网页过程,可以使用urllib、urllib2或者
Requests
抓取 Scraping:从爬取到的网页中提取出一些感兴趣的数据,并保存下来供后
续使用的过程


版权声明:本文为gzgrxq521原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。