如何自动使用会话?

2024-10-03 19:33:20 发布

您现在位置:Python中文网/ 问答频道 /正文

请通过脚本帮助处理授权。问题是无法自动插入get request invbf\u session\u id

import pprint
import requests
import re
import shelve

import bs4


def scanning_posts():
    print('------------------------enter begin--------------------')

    url = 'http://forum.saransk.ru/'
    html = requests.get(url)

    pprint.pprint(html.headers)
    rawCookie = html.headers['Set-Cookie']
    cookie = re.search(r"invbf_session_id=(.*?);", rawCookie).group(1)
    pprint.pprint(cookie)   # cookie != zzzzzzzzzzzzzzzzzzzzzz

    html = requests.get(url)
    soup = bs4.BeautifulSoup(html.text)
    loginForm = soup.find('form', {'id': 'login'})
    hiddenAuthKey = soup.find('input', {'name': 'auth_key'})['value']

    authData = {    
                'ips_username': 'xxxxxx',
                'ips_password': 'yyyyyy',
                'auth_key': hiddenAuthKey,
                'rememberMe': 1,
                'referer':  'http://forum.saransk.ru/'
    }

    header = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36',
                'Referer': 'http://forum.saransk.ru/forum/'
    }

    #pprint.pprint(authData)
    print('\tlogin: ', authData['ips_username'])

    cookie = dict(invbf_session_id='zzzzzzzzzzzzzzzzzzzzzz')



    req = requests.get(url, params=authData, cookies=cookie, headers=header)
    soup = bs4.BeautifulSoup(req.text)

    signLinkNotLogged = soup.find('a', {'id': 'sign_in'})
    if signLinkNotLogged:
        print('------------------------enter failed--------------------')
    else:
        print('------------------------enter successful--------------------')


scanning_posts()

运行脚本后,显示错误的invbf\u session\u id值,如FF firebug中所示。分别未获得授权。你知道吗

如果值invbf\u session\u id复制FF firebug并粘贴脚本,则授权成功


Tags: import脚本idurlgetcookiesessionhtml