X (Twitter) очистка веб-страниц с помощью twikit. Как проверить, истек ли срок действия auth_token?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 X (Twitter) очистка веб-страниц с помощью twikit. Как проверить, истек ли срок действия auth_token?

Сообщение Anonymous »

Я пытаюсь использовать библиотеку twikit Python для Webscrape X (ранее известного как Twitter).
Я не могу проверить, истек ли срок действия auth_token или нет.
Вот фрагмент кода для справки:

Код: Выделить всё

from twikit import Client, TooManyRequests
import time
from datetime import datetime
import json
import csv
from configparser import ConfigParser
from random import randint
import asyncio
import tracemalloc
import os
import jwt
import tracemalloc
tracemalloc.start()

# Login credentials
config = ConfigParser()
config.read('config.ini')
username = config['X']['username']
password = config['X']['password']
email = config['X']['email']

# Create a client
client = Client(language='en-US')

# Define the file path
cookies_file_path = 'cookies.json'

async def login_client():
await client.login(auth_info_1=username, auth_info_2=email, password=password)

if not os.path.exists(cookies_file_path):
# Function to login and generate new token
asyncio.run(login_client())
client.save_cookies(cookies_file_path)
else:
# Check if the auth_token is valid or expired
token = jwt.decode(client.auth_token, verify=False)['exp']
current_time = int(datetime.now().timestamp())
if token < current_time:
# Generate a new token
asyncio.run(login_client())
client.save_cookies(cookies_file_path)
else:
# Load existing cookies
client.load_cookies(cookies_file_path)

# Get tweets
MINIMUM_TWEETS = 10
QUERY = 'Nvidia stock' #input("Enter the query: ")
tweet_data = [] # [tweet_count, tweet.user.name, tweet.text, tweet.created_at, tweet.updated_at, tweet.retweet_count, tweet.favorite_count]

global tweet_count
tweet_count = 0

async def get_tweets():
tweets = await client.search_tweet(query=QUERY, product='Top', count=MINIMUM_TWEETS)
global tweet_count
for tweet in tweets:
tweet_count += 1
tweet_data = [tweet_count, tweet.user.name, tweet.text, tweet.created_at, tweet.retweet_count, tweet.favorite_count]
print(tweet_data)
# with open('tweets.csv', 'a', newline='') as file:
#     writer = csv.writer(file)
#     writer.writerow(tweet_data)

asyncio.run(get_tweets())
print(f"Total tweets: {tweet_count}")
Пока у меня все отлично, но мне нужна проверка с помощью auth_token, сохраненного в моем файле cookie.json. Я хочу проверить, истек ли срок его действия, и если да, то повторно войдите в систему или загрузите сохраненные файлы cookie из прошлого.
Я пытался использовать библиотеку PyJwt Python для декодирования auth_token и получите атрибут «exp», но для него нужен секретный_ключ. Вот где я сейчас застрял. Как мне получить secret_key? Я не могу понять, где его взять. Я имею в виду, что я использую twikit, поэтому я не храню активно какой-либо секретный ключ и не использую запросы для выполнения каких-либо вызовов API.

Подробнее здесь: https://stackoverflow.com/questions/793 ... en-expired
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»