Quiero obtener texto de un sitio usando Python. Pero el sitio usa JavaScript y el paquete de solicitudes para recibir solo código JavaScript. ¿Hay alguna manera de obtener texto sin usar Selenium?
import requests as r a=r.get('https://aparat.com/').textSi el sitio carga contenido usando javascript, entonces se debe ejecutar javascript para obtener el contenido. Me encontré con este problema hace un tiempo cuando hice un web scraping y terminé usando Selenium. Sí, es más lento que BeautifulSoup pero es la solución más fácil.
Si sabe cómo funciona el servidor, puede enviar una solicitud y debería regresar con algún tipo de contenido (ya sea html, json, etc.)
Editar: cargue las herramientas de desarrollador, vaya a la pestaña de red y actualice la página. Busque una solicitud XHR y la URL que utiliza. Es posible que pueda utilizar estos datos para sus necesidades.
Por ejemplo, encontré estas URL:
https://www.aparat.com/api/fa/v1/etc/page/config/mode/full https://www.aparat.com/api/fa/v1/video/video/list/tagid/1 ?siguiente=1
Si navega a estos en su navegador, notará contenido JSON, es posible que pueda usar esto. Creo que parte del texto está codificado en Unicode, por ejemplo, \u062e\u0644\u0627\u0635\u0647 \u0628\u0627\u0632\u06cc -> خلاصه بازی
No sé la implementación específica de python que podría usar. Busque bibliotecas que admitan la realización de solicitudes http y la recepción de datos. De esa manera puedes evitar el selenio. Pero debe conocer las URL de antemano. Como se muestra arriba.
Por ejemplo esto es lo que yo haría:
Espero que esto ayude.
Código de muestra:
import requests; req = requests.get('https://www.aparat.com/api/fa/v1/video/video/show/videohash/IueKs?pr=1&mf=1&referer=direct') res = req.json() #do stuff with res print(res)