针对python爬虫requests库的基础问题

requests库的基本用法

1. get函数

r = requests.get(url,**kwargs)

(1)**kwargs:控制访问的参数,均为可选项,以下给出一些常用的参数:

kv={'key1':'value','key2':'value2'}
    r=requests.request('GET','http://python123.io/ws',params=kv)
    print(r.url)
http://python.io/ws?key1=value1&key2=value2

params: 字典或字节序列,作为参数增加到url中
headers: 字典,HTTP定制头(模拟浏览器进行访问)
timeout: 设定超时时间,秒为单位

data:字典,字节序列或文件对象,作为Request的内容
json:JSON格式的数据,作为Request的内容
cokies:字典或CpplieJar,Request中的cookie
auth:元祖,支持HTTP认证功能
files:字典类型,传输文件
proxies:字典类型,设定访问代理服务器,可以增加登陆认证

(2)headers

当前页面按下F12 >> “网络”标签  >> 右侧“标头(消息头)”下方的“请求标头(请求头)” >> 添加到requests请求中

'Accept' : 发送端(客户端)希望接受的数据类型

'Content-Type' : 发送端(客户端|服务器)发送的实体数据的数据类型

'Host' : 确定本次请求的是哪个具体的网站

'User-Agent' : 用户代理

'Cookie' : Internet站点创建的,为了辨别用户身份而储存在用户本地终端上的数据

headers={
            'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Accept-Encoding':'gzip, deflate, br',
            'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
            'Connection':'keep-alive',
            'Host':'bbs.pku.edu.cn',
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0',
            'Cookie':'skey=ff16224dde4113e5; uid=15265'
        }

(3)get函数返回一个Response对象(type : <class 'requests.models.Response'>)

Response对象的属性:

属性说明
r.status_codeHTTP请求的返回状态,200为成功,404失败
r.textHTTP响应内容的字符串形式(文本)
r.encoding从HTTP header中猜测的响应内容编码形式
r.apparent_encoding从内容中推测的编码形式(个人不建议用)
r.contentHTTP响应内容的二进制形式(字节)

r.raise_for_status() : 用于抛出异常,如果r.status_code==200 : r.raise_for_status() = none

在明确了网页的字符集编码后可以使用类似 r.encoding = 'utf-8' 获取结果

def getHTMLText(url):
    try:
        r = requests.get(url,headers=headers,timeout=30)
        r.encoding = "utf-8"
        r.raise_for_status()
        return r.text
    except:
        return"产生异常"

2.head函数

当需要爬取的网页过大的时候,可以用r = requests.head(url,**kwargs)函数获取网页大概内容

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值