python爬虫第一节:Requests库的方法、Response对象属性、通用代码框架、HTTP协议对资源操作

爬虫离不开Request库,Requst库的7个主要方法:(其实只有一个方法就是request方法,其他6个方法底层都是调用的request方法,但是为了让coders写起来更方便,所以封装了另外6个常用方法)

其中最重要(常用的)get函数,传入url,返回一个Response对象

返回的Response对象 r :服务器返回的所有信息。

Response对象有哪些属性呢?

r.encoding 只是查看header中是否显示表明:charset = 某个编码,如果没有,那么会设置默认值:ISO-8859-1

而r.apparent_encoding 是对内容进行分析。

 

爬取网页通用代码框架

为了维持鲁棒性,必然try:...  except:... 那么我们先来了解异常吧

通用代码框架:

import requests

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

url = "http://www.baidu.com"
print(getHTMLText(url))

HTTP协议:通过 URL 对资源做定位,通过这常用的6个方法对网络资源进行管理

HTTP协议对资源的操作(恰巧与Request库6个方法对应)

一些方法:

head()方法,返回的还是一个Response对象 r 。 r 有很多属性 r.test , r.encoding , r.encoding 等等,其中r.headers应该就是配套这个request.head()方法使用的。其他方法也能调用,但是返回结果可能为空。

post()方法

put()方法

 

Request 主要方法及其解析:

7种 method , 最后一个OPTIONS用的很少。剩余6种可以用封装形式直接使用。

URL不多讲了,下面讲13种参数。 **表示可选。

params:

后面多了问号?
我们可以把一些键值对增加到URL中,我们访问的时候URL带入了一些参数,服务器将根据这些参数筛选部分资源返回回来。


data:
向服务器提供或者提交资源时使用,是没有问号?的
此时,并不放到URL链接里面,而是放在URL链接对应的地方作为数据来进行存储

json:
是http协议最经常使用的数据格式了
他也是作为内容部分,向服务器提交。

headers:
用这个字段定制 访问某一个URL的http协议头
这个也很有用,例如:模拟浏览器去爬取


cookies: 
auth:


files:以file对应的文件为键值对,用open的方式打开文件,并与此文件关联,再对应到URL上

timeout:
设置超时标准,如果在规定时间内没有返回,那么会抛出一个Timeout的异常

proxies:字典类型,设定访问代理服务器,可以有效地隐藏源地址,防止逆追踪。

request库的6种方法封装的时候,如果调用这个方法必须要传入某些参数,那么会显式地说明,否则有些参数是可选的,如下:


其中用的最多的还是get方法


此外,关于post(),如果一个网站服务器能够被无限制地post()一些东西(很有可能有恶意信息、垃圾信息等),会带来很大的风险。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值