scrapper sencillo forocochero
Ejemplo sencillo para iniciarse en el mundillo del scraping con b4soup y requestsunknown
python
3 years ago
2.5 kB
261
Indexable
#librerías necesarias para scraping sencillo import requests from bs4 import BeautifulSoup #introducción de datos por parte del usuario para saber que película buscar print("Indica de qué película quieres ver la nota media:\n") movie = input() #creación de la sesión para que gestione las cookies automáticamente s = requests.Session() #creación del header de la siguiente requests emulando al navegador headers = { 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8', 'Accept-Language': 'en-US,en;q=0.5', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1', 'Sec-Fetch-Dest': 'document', 'Sec-Fetch-Mode': 'navigate', 'Sec-Fetch-Site': 'none', 'Sec-Fetch-User': '?1', 'If-Modified-Since': 'Tue, 12 Apr 2022 17:21:12 GMT', 'If-None-Match': '"d4d054ccd58680986b3fce9212a093e4-gzip"', 'Cache-Control': 'max-age=0', } #request a la main page para conseguir las cookies si hicieran falta s.get('https://www.filmaffinity.com/es/main.html', headers=headers) headers = { 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8', 'Accept-Language': 'en-US,en;q=0.5', 'Connection': 'keep-alive', 'Referer': 'https://www.filmaffinity.com/es/search.php?stext=anime', 'Upgrade-Insecure-Requests': '1', 'Sec-Fetch-Dest': 'document', 'Sec-Fetch-Mode': 'navigate', 'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-User': '?1', } #creación de los params que requiere la request que se deberán pasar params = { 'stext': movie, } # request y extracción de la primera URL que devuelve filmaffinity response = s.get('https://www.filmaffinity.com/es/search.php', headers=headers, params=params) soup = BeautifulSoup(response.text, 'html.parser') movieLink = soup.find('div', {'class': 'mc-poster'}).find('a').get('href') #requesta a la url extraída para recoger el detalle de la película response = s.get(movieLink, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') #recogida de la nota media según tags analizados previamente avgRating = soup.find('div', {'id': 'movie-rat-avg'}).text #presentación por pantalla de datos recogidos print(f'\nLa nota media de {movie.upper()} es {avgRating}')
Editor is loading...