Python爬虫04——requests库04

Requests 库

下面开始的就是 requests 库的高级操作了。

https://2.python-requests.org//zh_CN/latest/user/advanced.html#advanced

会话对象

如果你用 .post() 登录了一个页面,然后再用 .get() 去爬取只有登录才显示的信息,你能不能查得到呢?答案是
这个场景,专业一点来说,是不同会话的问题。原因是这是两个会话对象,他们之间的 cookies 信息是不共享的,所以后者不能爬取想要的信息。
要想解决这个问题,办法还是挺简单的。那就是使用 .session() 。
在这里插入图片描述上面通过测试网址,先设置了名称就做 sessioncookie 而内容是 123456789 的cookies,然后再发起一次请求,得到之前设置的 cookies 。所以,这就说明了应用 session 可以解决上述问题。
PS:图片下面的橙色的内容是 print 语句输出的内容。

准备的请求

当你从 API 或者会话调用中收到一个 Response 对象时,request 属性其实是使用了 PreparedRequest。有时在发送请求之前,你需要对 body 或者 header (或者别的什么东西)做一些额外处理,下面演示了一个简单的做法:

from requests import Request, Session

s = Session()
req = Request('GET',  url,
    data=data
    headers=headers
)

prepped = s.prepare_request(req)

# do something with prepped.body
# do something with prepped.headers

resp = s.send(prepped,
    stream=stream,
    verify=verify,
    proxies=proxies,
    cert=cert,
    timeout=timeout
)

print(resp.status_code)

由于你没有对 Request 对象做什么特殊事情,你立即准备和修改了 PreparedRequest 对象,然后把它和别的参数一起发送到 requests.* 或者 Session.*。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值