欢迎光临
我们一直在努力

爬虫实战 | Requests基础

文章目录

开源地址:https://github.com/kennethreitz/requests
中文文档:http://docs.python-requests.org/zh_CN/latest/index.html

目录
一、Requests基础
二、发送请求与接收响应(基本GET请求)
三、发送请求与接收响应(基本POST请求)
四、response属性
五、代理
六、cookie和session
七、案例

一、Requests基础

1.安装Requests库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ requests

2.使用Requests库

import requests

二、发送请求与接收响应(基本GET请求)

response = requests.get(url)

1.传送 parmas参数

  • 参数包含在url中
response = requests.get("http://httpbin.org/get?name=zhangsan&age=22")
print(response.text)

运行结果

  • 通过get方法传送参数
data = {
        "name": "zhangsan",
        "age": 30
    }
response = requests.get("http://httpbin.org/get", params=data)
print(response.text)

2.模拟发送请求头(传送headers参数)

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"
}
response = requests.get("http://httpbin.org/get", headers=headers)
print(response.text)

三、发送请求与接收响应(基本POST请求)

response = requests.post(url, data = data, headers=headers)

四、response属性

属性描述
response.text获取str类型(Unicode编码)的响应
response.content获取bytes类型的响应
response.status_code获取响应状态码
response.headers获取响应头
response.request获取响应对应的请求

五、代理

proxies = {
    "http": "https://175.44.148.176:9000",
    "https": "https://183.129.207.86:14002"
}
response = requests.get("https://www.baidu.com/", proxies=proxies)

六、cookie和session

  • 使用的cookie和session好处:很多网站必须登录之后(或者获取某种权限之后)才能能够请求到相关数据。
  • 使用的cookie和session的弊端:一套cookie和session往往和一个用户对应.请求太快,请求次数太多,容易被服务器识别为爬虫,从而使账号收到损害。

1.不需要cookie的时候尽量不去使用cookie。
2.为了获取登录之后的页面,我们必须发送带有cookies的请求,此时为了确保账号安全应该尽量降低数据
采集速度。

1.cookie

(1)获取cookie信息

response.cookies

2.session

(1)构造session回话对象

session = requests.session()

示例:

def login_renren():
    login_url = 'http://www.renren.com/SysHome.do'
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"
    }

    session = requests.session()

    login_data = {
        "email": "账号",
        "password": "密码"
    }

    response = session.post(login_url, data=login_data, headers=headers)

    response = session.get("http://www.renren.com/971909762/newsfeed/photo")
    print(response.text)


login_renren()
赞(0) 打赏
未经允许不得转载:散人研 » 爬虫实战 | Requests基础
分享到: 更多 (0)

评论 抢沙发

1 + 4 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏