python爬虫,自动登录

使用requests模块

使用requests.session()创建一个会话。然后使用会话进行链接请求。如果把cookies或headers放进请求参数中,在session进行第一次请求后,这些参数不会自动添加到后续的请求中。

因此,为了是参数在session中共用,应该将其添加到session上。

session = requests.session()
session.cookies = get_cookiejar()
session.headers = {}

cookies需要是 requests.cookies.RequestsCookieJar。

 

获取一个已经登录网站的cookie

import requests
import browser_cookie3

def get_cookiejar_from_browser(domain):
    cj = browser_cookie3.chrome(domain_name=domain)
    cookiejar = requests.cookies.RequestsCookieJar()
    for c in cj:
        cookiejar.set(c.name, c.value, domain=c.domain, path=c.path)
    return cookiejar

 

有一种方法,直接copy请求头,然后将其附着到session上,这样只能访问你copy的那个网页,cookies并不会真正的被设置。

 

 

requests设置代理:

import requests
proxies = {
  "http": "http://10.10.1.10:3128",
  "https": "http://10.10.1.10:1080",
}
requests.get("https://www.baidu.com/", proxies=proxies)

https 证书验证:

import requests
url = 'https://kyfw.12306.cn/otn/leftTicket/init'
# 关闭证书验证
r = requests.get(url, verify=False)
print(r.status_code)
# 开启证书验证
# r = requests.get(url, verify=True)
# 设置证书所在路径
# r = requests.get(url, verify= '/path/to/certfile')

使用cookie:

import requests
url = 'https://movie.douban.com/'
r = requests.get(url)
# r.cookies是RequestsCookieJar对象
print(r.cookies)
mycookies = r.cookies

# RequestsCookieJar转换字典
cookies_dict = requests.utils.dict_from_cookiejar(mycookies)
print(cookies_dict)

# 字典转换RequestsCookieJar
cookies_jar = requests.utils.cookiejar_from_dict(cookies_dict, cookiejar=None, overwrite=True)
print(cookies_jar)

# 在RequestsCookieJar对象中添加Cookies字典
print(requests.utils.add_dict_to_cookiejar(mycookies, cookies_dict))

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值