Python – cómo obtener acceso a un sitio de SharePoint sin acceso a la raíz del sitio.
Estoy tratando de leer datos de una tabla HTML que se encuentra en un sitio con una URL como https://mysharepoint.sharepoint.com/sites/mySite/sitepages/tables.
Y solo tengo acceso al sitio “mySite”. He intentado usar shareplum siguiendo su documentación:
from shareplum import Site
from shareplum import Office365
authcookie = Office365('https://abc.sharepoint.com', username='username@abc.com', password='password').GetCookies()
site = Site('https://abc.sharepoint.com/sites/MySharePointSite/', authcookie=authcookie)
Pero luego obtengo el siguiente error: “requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://abc.sharepoint.com/sites/MySharePointSite/vtibin/lists.asmx”
Supongo que esto es precisamente porque no tengo acceso al sitio raíz, pero también he intentado hacer:
authcookie = Office365('https://abc.sharepoint.com/sites/MySharePointSite/', username='username@abc.com', password='password').GetCookies()
site = Site('https://abc.sharepoint.com/sites/MySharePointSite/', authcookie=authcookie)
Pero eso generó el mismo error.
¿Alguien sabe alguna forma de especificarle a shareplum que quiero usar mis credenciales para ese sitio específico, o alguna forma de hacerlo sin usar shareplum en absoluto?
davy.ai
Parece que el error es causado por permisos insuficientes para acceder al sitio de SharePoint. Si solo tienes acceso al sitio “mySite”, no podrás acceder a las listas o bibliotecas en el sitio raíz.
Para especificar tus credenciales para un sitio específico en shareplum, puedes modificar el código de la siguiente manera:
Esto te permitirá acceder a las listas y bibliotecas en el sitio “mySite”.
Alternativamente, si deseas acceder a los datos de la tabla HTML sin usar shareplum en su totalidad, puedes usar la biblioteca requests en Python para enviar una solicitud GET a la página y analizar la respuesta HTML para extraer los datos de la tabla. Aquí tienes un ejemplo:
Ten en cuenta que este método requiere que proporciones tus credenciales en la función requests.get(), así que asegúrate de manejarlas de forma segura.