前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单爬虫

简单爬虫

作者头像
Cloud-Cloudys
发布2020-07-07 15:28:37
4080
发布2020-07-07 15:28:37
举报

Requests库入门

Requests库的7个主要方法

方法

说明

requests.request()

构造一个请求,支撑以下各方法的基本方法

requests.get()

获取HTML网面的方法

requests.head()

获取HTML网页头部信息的方法

requests.post()

向HTML网页提交POST请求的方法

requests.put()

向HTML页面提交PUT请求的方法

requests.patch()

向HTML网页提交局部修改请求

requests.delete()

向HTML网页提交删除请求

Requests库的get()方法

requests.get(url,params=None,**kwargs)

  1. url:拟获取页面的url链接
  2. params:url中的额外参数,字典或字节流格式,可选
  3. **kwargs:12个控制访问的参数

r = requests.get(url)

  • r为一个包含服务器资源的Response对象(即为requests.get()返回内容)
  • get()方法和url构造了一个向服务器请求资源的Request对象

Response对象

Response对象包含服务器反回的所有信息,也包含请求的Request信息

Response对象的属性

属性

说明

r.stats_code

HTTP请求的返回状态,200表示连接成功

r.txt

HTTP响应的字符串形式

r.encoding

从HTTP header中猜测的响应方式的内容编码

r.apparent_enconding

从内容中分析出的响应内容编码方式(备选编码方式)

r.content

HTTP响应内容编码的二进制形式

  1. r.encoding:如果charset不存在,则默认编码为ISO-8859-1,r.text根据r.encoding显示网页内容
  2. r.apparent_encoding:根据网页内容分析出的编码方式

理解Response异常 r.raise_for_status()如果不是200,产生异常requests.HTTPError异常

代码语言:javascript
复制
r.raise_for_status()在方法内部判断r.statu_code是否等于200,不需要增加额外的if语句,该语句便于try-except进行异常处理

Requests库的异常

异常

说明

requests.ConnectonError

网路连接错误异常

requests.HTTPError

HTTP错误异常

requests.URLRequire

URL缺失异常

requests.TooManyRedirects

超过最大重定向次数,产生重定向异常

requests.ConnectTimeout

连接远程服务器异常

requests.Timeout

请求URL超时,产生超时异常

python爬取网页代码通用框架

代码语言:javascript
复制
import requests
#import time

def getHTMLText(url):
    try:
        r = requests.get(url,timeout = 30)
        r.raise_for_status()#如果状态不是200,产生HTTPError异常
        #print(r.status_code)
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "产生异常"

if __name__ == '__main__':
    url = "http://www.baidu.com"
    print(getHTMLText(url))

Requests库的request()方法

代码语言:javascript
复制
requests.request(method, url, **kwargs)
  • method: 请求方式,对应get/put/delete等7种
  • url:拟获取页面的url链接
  • **kwargs: 控制访问的参数

kwargs:控制访问参数,(可选)

代码语言:javascript
复制
params:字典或字节序列,作为参数增加到URL中
data:字典、字节序列或文章对象,作为Request的内容
json:Json格式的数据
headers:HTTP定制头
cookies:字典或CookieJar,Request中的cookie
auth:元组,支持HTTP认证功能
file:字典类型,传输文件
timeout:设置超时时间,单位为秒
proxies:字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects:True/False,默认为True,重定向开关
strem:True/False,默认为True,获取页面立即下载开关
verify:True/False,默认为True,认证SSl证书开关
cert:本地SSL证书

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年9月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Requests库入门
    • Requests库的7个主要方法
      • Requests库的get()方法
        • Response对象
        • Requests库的异常
      • python爬取网页代码通用框架
        • Requests库的request()方法
          • kwargs:控制访问参数,(可选)
      相关产品与服务
      SSL 证书
      腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档