requests模块的初步使用

requests模块的简单使用

使用IP池的方法

requests模拟登录的三种方式

cookie和session的区别

cookie和session的优缺点

解决办法

准备很多账号和密码,那么就有很多cookie。携带一堆cookie进行请求,把cookie组成cookie池。

三种方式:

  • 实例化session,使用session发送post请求,在使用它获取登录后的页面(账号密码方式)
  • 在header中添加cookie键,值为cookie字符串
  • 在请求方法中添加cookie参数,接收字典形式的cookie

模拟登录1

import requests

session = requests.session()
post_url = "http://www.renren.com/PLogin.do"
post_data = {"email":"mr_mao_hacker@163.com", "password":"alarmchime"}
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36"
}
# 使用session发送post请求,cookie保存在其中
session.post(post_url, data=post_data, headers=headers)
# 在使用session进行请求登录之后才能访问的地址
r = session.get("http://www.renren.com/327550029/profile", headers=headers)

# 保存页面
with open("renren1.html","w",encoding="utf-8") as f:
    f.write(r.content.decode())

模拟登录2

import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36",
    "Cookie": "anonymid=kfaq9b1a-24dvxc; depovince=GUZ; _r01_=1; JSESSIONID=abczTQNg3VWlc_EiLoQsx; ick_login=696b9fd3-1078-441f-84b7-6719e64a2552; taihe_bi_sdk_uid=c390ad48b9bcdd599c0730e4c26c80c1; taihe_bi_sdk_session=048486a89c730d6954978ff3ae6299d1; _de=BF09EE3A28DED52E6B65F6A4705D973F1383380866D39FF5; t=1d6256f59cf5bcf00fc94ba4e05f69ae4; societyguester=1d6256f59cf5bcf00fc94ba4e05f69ae4; id=975149554; xnsid=55c297ac; jebecookies=98a53108-d6e5-4430-9566-310405448e8f|||||; ver=7.0; loginfrom=null; wp_fold=0"
}
# 在使用session进行请求登录之后才能访问的地址
r = requests.get("http://www.renren.com/327550029/profile", headers=headers)

# 保存页面
with open("renren2.html","w",encoding="utf-8") as f:
    f.write(r.content.decode())

直接使用cookie访问登录后的页面,使用场景:

  • cookie过期时间很长的网站
  • 在cookie过期之前能够拿到所有的数据,比较麻烦
  • 配合其他程序一起使用,其他程序专门获取cookie,当前程序专门请求页面

模拟登录3

import requests

# 在使用session进行请求登录之后才能访问的地址
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36",
}
cookies = "anonymid=kfaq9b1a-24dvxc; depovince=GUZ; _r01_=1; JSESSIONID=abczTQNg3VWlc_EiLoQsx; ick_login=696b9fd3-1078-441f-84b7-6719e64a2552; taihe_bi_sdk_uid=c390ad48b9bcdd599c0730e4c26c80c1; taihe_bi_sdk_session=048486a89c730d6954978ff3ae6299d1; _de=BF09EE3A28DED52E6B65F6A4705D973F1383380866D39FF5; t=1d6256f59cf5bcf00fc94ba4e05f69ae4; societyguester=1d6256f59cf5bcf00fc94ba4e05f69ae4; id=975149554; xnsid=55c297ac; jebecookies=98a53108-d6e5-4430-9566-310405448e8f|||||; ver=7.0; loginfrom=null; wp_fold=0"
cookies = {i.split("=")[0]:i.split("=")[1] for i in cookies.split("; ")}

r = requests.get("http://www.renren.com/327550029/profile", headers=headers, Cookies=cookies)

# 保存页面
with open("renren2.html","w",encoding="utf-8") as f:
    f.write(r.content.decode())

response.text和response.content的区别

requests保存图片

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值