Python 3, как получить страницу панели Transifex

Я - пользователь Transifex, мне нужно получить страницу своей панели со списком всех проектов моей организации. то есть страница, которую я вижу при входе в систему: https://www.transifex.com/organization/(my_organization_name)/dashboard

Я могу получить доступ к Transifex API с помощью этого кода:

import urllib.request as url

usr = 'myusername'
pwd = 'mypassword'

def GetUrl(Tx_url):
    auth_handler = url.HTTPBasicAuthHandler()
    auth_handler.add_password(realm='Transifex API',
                          uri=Tx_url,
                          user=usr,
                          passwd=pwd)
    opener = url.build_opener(auth_handler)
    url.install_opener(opener)
    f = url.urlopen(Tx_url)
    return f.read().decode("utf-8")

все в порядке, но нет вызова API, чтобы получить все проекты моей организации. единственный способ - получить эту страницу в формате html и проанализировать ее, но если я использую этот код, я получаю страницу входа.

Это работает нормально с google.com, но я получаю сообщение об ошибке с www.transifex.com или www.transifex.com/organization/(my_organization_name)/dashboard

Python, HTTPS GET с базовой аутентификацией

Я новичок в Python, мне нужен код с Python 3 и только стандартная библиотека.

Спасибо за любую помощь.

2 ответа

Решение

Призыв к

/ проекты /

возвращает ваши проекты вместе со всеми общедоступными проектами, к которым у вас есть доступ (например, то, что вы сказали). Вы можете искать те, которые вам нужны, изменив вызов на что-то вроде:

https://www.transifex.com/api/2/projects/?start=1&end=6

При этом количество возвращаемых проектов будет ограничено.

На данный момент, может быть, вам будет удобнее, если у вас мало проектов, использовать этот вызов:

/ Проект /project_slug

и получить каждый по отдельности.

Transifex поставляется с API, и вы можете использовать его для получения всех ваших проектов.

Я думаю, что вам нужен этот запрос GET на проекты. Он возвращает список (slug, name, description, source_language_code) для всех проектов, к которым у вас есть доступ, в формате JSON.

Так как вы знакомы с python, вы можете использовать библиотеку запросов для выполнения тех же действий в гораздо более простой и удобочитаемой форме.

Вам просто нужно сделать что-то вроде этого:

import requests
import json

AUTH = ('yourusername', 'yourpassword')
url =  'www.transifex.com/api/2/projects'

headers = {'Content-type': 'application/json'}

response = requests.get(url, headers=headers, auth=AUTH)

Я надеюсь, что помог.

Другие вопросы по тегам