python3爬虫(2)--requests库的基本方法、高级方法、异常处理

本文试用环境:python3
比urllib更强大的python爬虫请求库requests,Cookies、登录验证、代理设置等操作都有很好的解决
安装:
pip install requests 
引入:
import requests

目录

一、基本使用

1.1、一句话的请求

1.2、get请求的params 参数

1.3、post请求的data参数

1.4、抓取网页通常加入headers、timeout、time.sleep信息

1.5、JSON格式的解析

1.6、抓取二进制数据的解析

1.7、响应

二、requests库高级应用

2.1、Cookies处理

2.2、会话维持,保持登陆状态。Session对象。

2.3、代理设置

2.4、身份认证

2.5、Prepared Request

2.6、其他:SSL 证书验证、文件上传、OAuth 认证等

三、异常处理


一、基本使用

1.1、一句话的请求

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# pip install requests #安装
import requests  #导入
r=requests.get("https://me.csdn.net/column/weixin_41685388")
#r.encoding ="utf-8" #当出现中文乱码问题时使用
print(type(r)) #类型:<class 'requests.models.Response'>
print(r. status_code)#状态:200 或者404、500...等
print(type(r.text)) #响应体的类型:<class 'str'>
print(r.cookies) #cookies:<RequestsCookieJar[<Cookie(.*)/>]>
print(r.text) #页面内容
#使用get()方法成功实现一个GET请求,这倒不算什么,
# 更方便之处在于其他的请求类型依然可以用一句话来完成,示例如下:
r1=requests.post('http://httpbin.org/post')
r2=requests.put('http://httpbin.org/put')
r3=requests.delete('http://httpbin.org/delete')
r4=requests.head('http://httpbin.org/get')
r5=requests.options("http://httpbin.org/get")

1.2、get请求的params 参数

import requests
r=requests.get('http://httpbin.org/get?name=germey&age=22')
#<==>等价于
data={'name':'germey','age':22}
r1=requests. get("http://httpbin.org/get", params=data)
print(r1.text)

1.3、post请求的data参数

response=requests.post(url,data=data,headers= Headers,timeout=30) #data为字典类型
def youdao(input):
    import requests
    from requests.exceptions import ConnectTimeout
    import time
    import random
    url=r"http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
    Headers = { }
    Headers["Cookie"]=r'OUTFOX_SEARCH_USER_ID_NCOO=1564612197.2237918; OUTFOX_SEARCH_USER_ID="1638006579@10.108.160.19"; _ga=GA1.2.269278628.1571982437; _ntes_nnid=db62add68d78e9de1c202b8b131b32a4,1579175684866; JSESSIONID=aaaGcKLB2j8UhdX6Q3V_w; SESSION_FROM_COOKIE=unknown; ___rl__test__cookies=1579203741289'
    Headers["User-Agent"]=r"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
    data = { } #post请求需要的data参数,在网页检查的Form Data中,
    #data["i"]="I am jalen" #认真一点你会发现这就是我们输入的值,自己做一个简单的有道翻译只需要修改这里就可以实现
    data["i"] = input  #那就按照习惯在函数外单独输入经常变化的值
    data["from"]="AUTO"
    data["to"]="AUTO"
    data["smartresult"]="dict"
    
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值