Экспортируйте Google Sheet в файл PDF с помощью запросов PythonPython

Программы на Python
Ответить
Anonymous
 Экспортируйте Google Sheet в файл PDF с помощью запросов Python

Сообщение Anonymous »

Недавно я пытался преобразовать Google Sheet в файл PDF, сохранив все данные форматирования. Из моего предыдущего вопроса я получил решение запросить https://docs.google.com/spreadsheets/d/ ... format=pdf. Замените ...id..., как упомянул @doubleunary.
Вот как я создаю ссылку.

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

URL = "https://docs.google.com/spreadsheets/d/"
ID = "1ZUG5Xlesc-e1EfGg_T16vamQ_igMXvPb6VNQoWZegDE"

PARAM = [
'/export?exportFormat=pdf&format=pdf',
'&size=LETTER',
'&portrait=true',
'&fitw=true',
'&top_margin=0.75',
'&bottom_margin=0.75',
'&left_margin=0.7',
'&right_margin=0.7',
'&sheetnames=false&printtitle=false',
'&pagenum=UNDEFINED',
'&gridlines=true',
'&fzr=FALSE'
]

params = ''
for param in PARAM:
params += param

CALL = URL + ID + params
Теперь я столкнулся с проблемой аутентификации. Я также не хочу предоставлять доступ для просмотра кому-либо, у кого есть ссылка.
Ниже приведен код, который я использовал для OAuth2, но я не знаю, как я могу использовать аутентификацию для отправки запроса.

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

    from requests_oauthlib import OAuth2Session
import os
os.environ["OAUTHLIB_RELAX_TOKEN_SCOPE"] = ' '

client_id = xxx
client_secret = xxx
redirect_uri = 'http://localhost'

scope = ['https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile']
oauth = OAuth2Session(client_id, redirect_uri=redirect_uri, scope=scope)
authorization_url, state = oauth.authorization_url(
"https://accounts.google.com/o/oauth2/auth",
access_type="offline",
prompt="select_account")

print(f'Please go to {authorization_url} and authorize access.')
authorization_response = input('Enter the full callback URL - ')

token = oauth.fetch_token(
"https://oauth2.googleapis.com/token",
code=authorization_response,
client_secret=client_secret)

r = oauth.get('https://www.googleapis.com/oauth2/v1/userinfo')

for i in r:
print(i)
Код возвращает правильные данные пользователя, но когда я пытаюсь выполнить request.get(CALL) после аутентификации, он все равно возвращает код 401. Как я могу использовать аутентификацию?
Я хочу избегать таких вещей, как Selenium, потому что они часто приводят к проблемам с капчей.

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-requests
Ответить

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

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

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

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

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