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 ответа
Призыв к
/ проекты /
возвращает ваши проекты вместе со всеми общедоступными проектами, к которым у вас есть доступ (например, то, что вы сказали). Вы можете искать те, которые вам нужны, изменив вызов на что-то вроде:
При этом количество возвращаемых проектов будет ограничено.
На данный момент, может быть, вам будет удобнее, если у вас мало проектов, использовать этот вызов:
/ Проект /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)
Я надеюсь, что помог.