requests模拟登录微博,通过session访问用户详情

import requests
import ssl

ssl._create_default_https_context = ssl._create_unverified_context


class RequestsTest(object):
    def __init__(self):
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36',
            'Referer': 'https://passport.weibo.cn/signin/login?entry=mweibo&r=http%3A%2F%2Fweibo.cn%2F&backTitle=%CE%A2%B2%A9&vt=',
        }
        self.session=requests.session()

    #登录
    def login_weibo(self,url):
        data={
            'username': '17701256561',
            'password': 'lizhibin666',
            'savestate': '1',
            'r': '',
            'ec': '0',
            'pagerefer': 'http://weibo.cn/',
            'entry': 'mweibo',
            'wentry': '',
            'loginfrom': '',
            'client_id': '',
            'code': '',
            'qq': '',
            'mainpageflag': '1',
            'hff': '',
            'hfp': '',
        }
        r = self.session.post(url=url,data=data,headers=self.headers)
        print(r)

    #普通requests请求不能获取登录后的信息
    def get_info(self,url):
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36',}
        r = requests.get(url=url,headers=headers)
        r.encoding='gbk'
        # print(self.url)
        print(r.text)

    #通过session可以获取登录后的信息
    def session_get_info(self,url):
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36', }
        r = self.session.get(url=url,headers=self.headers)
        print(r.text)

post_url = 'https://passport.weibo.cn/sso/login'
get_url = 'https://weibo.cn/6388179289/info'

#实例化微博访问
weibo_request = RequestsTest()

#登录,参数为登录post地址
weibo_request.login_weibo(post_url)
#获取用户详情
weibo_request.session_get_info(get_url)
模拟登录微博需要使用 Python 的 requests 和 BeautifulSoup 库。以下是一个简单的示例代码: ```python import requests from bs4 import BeautifulSoup # 登录微博用户名和密码 username = 'your_username' password = 'your_password' # 构造请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } # 获取登录页面的 HTML login_url = 'https://passport.weibo.cn/signin/login' session = requests.Session() response = session.get(login_url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') vk = soup.select('input[name="vk"]')[0]['value'] password_name = soup.select('input[type="password"]')[0]['name'] # 构造 POST 数据 data = { 'username': username, password_name: password, 'savestate': '1', 'r': 'https://m.weibo.cn/', 'ec': '0', 'pagerefer': 'https://m.weibo.cn/login?backURL=https%3A%2F%2Fm.weibo.cn%2F', 'entry': 'mweibo', 'wentry': '', 'loginfrom': '', 'client_id': '', 'code': '', 'qq': '', 'mainpageflag': '1', 'hff': '', 'hfp': '' } # 发送登录请求 login_url = 'https://passport.weibo.cn/sso/login' response = session.post(login_url, headers=headers, data=data) print(response.text) ``` 在上面的代码中,首先使用 requests 库获取登录页面的 HTML,然后使用 BeautifulSoup 库解析 HTML,获取 vk 和 password_name 这两个 POST 数据需要的参数。然后构造 POST 数据,使用 session.post() 方法发送登录请求。如果登录成功,response.text 中应该包含用户的个人信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值