python采集需要登陆才能看到信息的网站。requests Session 保持会话

想要采集目标网站的信息,发现有些信息是要登陆后才能采集的。下面用python pycharm django来尝试采集。

# 登陆后采集信息
def Get_Session(URL,DATA,HEADERS):
    '''保存登录参数'''
    ROOM_SESSION  = requests.Session()
    ROOM_SESSION.post(URL,data=DATA,headers=HEADERS)
    return ROOM_SESSION

#登陆测试
def login_test(request):   
    LOGIN_URL = 'http://www.xxxxx.cn/company/ajax_company_login'  # 请求的URL地址
    DATA = {
        "_token": 'bWuMzCN2omYcDqPXJUikxxxxxxxxxx',
        "username": 'your name',
        "password": 'your pass',
        "remember": 'on'
            }  # 登录系统的账号密码,也是我们请求数据

    HEADERS = {
        'Accept': '*/*',
        'Connection': 'keep-alive',
        'Host': 'www.xxxxx.cn',
        'Origin': 'http://www.xxxxx.cn',
        'Referer': 'http://www.xxxxx.cn/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400',
        'Accept-Encoding': 'gzip,deflate',
        'Accept-Language': 'zh-CN,en-US;q=0.8',
        'X-Requested-With': 'com.uc.infoflow',
        'Cookie': 'remember_company_xxxxxxxxxxxxm_lpvt_f4e9422e12d807da4b0a9821ad5ed670=1583376760'
    }
   

    # 登陆并获取SESSION
    SESSION = Get_Session(LOGIN_URL, DATA, HEADERS)
    # 保存session后再次请求对应的地址
    # 通过会话来访问需要登陆的页面
    RES2 = SESSION.get("http://www.xxxxx.cn/resume_xxxxx.html")
    print(RES2.text)
    return render(request, 'login_test.html',{"result":RES2.text})

第1次测试HEADERS只写了User-Agent,发现不能正常登陆,只到把Cokkie加上才可以了,数据来源可以使用chrome内核的浏览器获取信息,如图:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值