Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gitfrandu4/node-scripting
Algunos ejercicios realizando scripting y web scraping
https://github.com/gitfrandu4/node-scripting
Last synced: 6 days ago
JSON representation
Algunos ejercicios realizando scripting y web scraping
- Host: GitHub
- URL: https://github.com/gitfrandu4/node-scripting
- Owner: gitfrandu4
- Created: 2021-10-25T00:13:10.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-10-25T00:16:38.000Z (about 3 years ago)
- Last Synced: 2023-12-09T19:42:40.107Z (about 1 year ago)
- Language: JavaScript
- Size: 6.84 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Scripting
**Miniejercicios**:
**Ejercicio 1**: Crea un script el cual recibe dos parámetros, el primero es una frase y el segundo será un carácter o una palabra a buscar. Tu script escribirá en consola el número de apariciones.
Ejemplo : `node index.js "Esta es la frase" a`
```bash
⇒ index.js: "El número de apariciones de 'a' es 3"
```Solución: [Ejercicio 1](ejercicio1.js)
**Ejercicio 2**: Crea un script el cual recibe un parámetro. El parámetro será una frase y tu script escribirá en consola el número de apariciones de cada carácter distinto dentro de la frase.
Ejemplo: `node index.js "Esta es la frase"`
```bash
⇒ index.js: "e: 2, s: 3, t:1, a: 3, l: 1, f: 1, r:1"
```Pista de una posible solución: usar un objeto como diccionario y método `Object.keys()`
Solución: [Ejercicio 2](ejercicio2.js)
**Ejercicio 2 v2**:
Modifica el ejercicio anterior para que el usuario pueda seguir introduciendo frases y se vayan acumulando los resultados
Ejemplo:
```bash
node index.js "Esta es la frase"index.js: "e: 2, s: 3, t:1, a: 3, l: 1, f: 1, r:1"
index.js: "Introduce otra frase"Usuario : "otra"
index.js: "e: 2, s: 3, t:2, a: 4, l: 1, f: 1, r:2"
```Pista: `process.stdin`
Solución: [Ejercicio 2v2](ejercicio2-v2.js)
## Módulos
Por ejemplo:
- [Lodash](https://lodash.com/) - A JavaScript utility library delivering consistency, modularity, performance, & extras.
- [minimist](https://www.npmjs.com/package/minimist) - Module for parse argument options
- [Moment.js](https://momentjs.com/) - Parse, validate, manipulate,
and display dates and times in JavaScript.**Ejercicio 3**:
Modifica el código anterior ([Ejercicio 2v2](ejercicio2-v2.js)) de manera que si el usuario introduce el flag `--novocals` no se tengan en cuenta las vocales.
Ejemplo:
```bash
node .\ejercicio3.js "Aprendiendo scripting" --novocals=trueindex.js: "p: 2, r: 2, n: 3, d: 2, s: 1, c: 1, t: 1 g: 1"
```Solución: [Ejercicio 3](ejercicio3.js)
**Ejercicio 4**:
Modifica el código anterior de manera que si el usuario introduce el flag `--onlywords` se cuentan las apariciones de las distintas palabras.
Ejemplo:
```bash
node .\ejercicio3.js "Aprendiendo scripting" --novocals=trueindex.js: "Aprendiendo: 1, scripting: 1"
```Solución: [Ejercicio 4](ejercicio4.js)
### Web scrapping
Ejercicio para practicar scripting.
Módulos que vamos a utilizar para hacer peticiones:
- http
- request
- [axios](https://github.com/axios/axios) - Promise based HTTP client for the browser and node.js```javascript
var axios = require("axios");
var urlWeb = "https://www.mediamarkt.es/es/category/_port%C3%A1tiles-701175.html";
axios.get(urlWeb).then((response) => {
console.log(typeof response.data); // stringconst posBodyInit = response.data.indexOf("");
const aux = response.data.substring(posBodyInit, posBodyEnd);console.log(typeof aux); // string :O
});
```Módulo para manipular el HTML con jQuery:
- [cheerios](https://github.com/cheeriojs/cheerio)
```javascript
var axios = require('axios');var cheerio = require('cheerio');
var urlWeb = 'https://airbnb.com';
axios.get(urlWeb).then(response => {
var $ = cheerio.load(response.data);
console.log($('.casa')); // :O So Sexy
})
```En la terminal de nuestro proyecto:
```bash
npm init
npm install axios
npm install cheerios
````