An open API service indexing awesome lists of open source software.

https://github.com/juletopi/webscraping_com_python

🐍• Repositório back-end sobre os conceitos de "webscraping" utilizando a linguagem Python.
https://github.com/juletopi/webscraping_com_python

beautifulsoup playwright python requests venv venv-python virtual-environment webscraping webscrapping

Last synced: about 2 months ago
JSON representation

🐍• Repositório back-end sobre os conceitos de "webscraping" utilizando a linguagem Python.

Awesome Lists containing this project

README

          


PythonWebscraping-pic


Sumário 🧾



Apresentação   |  
Configurando o Ambiente Virtual   |  
Utilizando a Biblioteca Requests



Implementando o Webscraping   |  
Tecnologias Utilizadas   |  
Contribuições   |  
Autor




## 📖 Apresentação
Este projeto tem como objetivo demonstrar como o processo de **webscraping** utilizando a linguagem **Python**, abordando desde a configuração inicial até a extração de dados de páginas web utilizando bibliotecas populares como `requests` e `BeautifulSoup`.

Fora idealizado durante uma das oficinas da **21ª Semana Nacional de Ciência e Tecnologia** realizada em dezembro de 2024 no **IFRO Campus Ji-Paraná**.


Voltar para o início ↺

## 🔧 Configurando o Ambiente Virtual
1. **Crie o ambiente virtual**:
```bash
python -m venv venv
```
2. **Ative o ambiente virtual**:
- **Windows**:
```bash
venv\Scripts\activate
```
- **Linux/Mac**:
```bash
source venv/bin/activate
```
3. **Instale as dependências**:
```bash
pip install -r requirements.txt
```


Voltar para o início ↺

## 📥 Utilizando a Biblioteca Requests
A biblioteca `requests` permite enviar requisições HTTP de forma simples. É ideal para interagir com APIs ou capturar o HTML de páginas web.

### Exemplo: Requisição GET

```python
import requests
import json

response = requests.get("https://httpbin.org/get")
print(f"Status Code: {response.status_code}")
print(f"Dados da resposta: {json.dumps(response.json(), indent=2)}")
```

### Exemplo: Requisição POST

```python
import requests
import json

data = {
"name": "Julio",
"age": 21,
"city": "Ji-Parana",
"state": "RO"
}

response = requests.post("https://httpbin.org/post", data=data)
print(f"\nStatus Code: {response.status_code} - {json.dumps(response.json(), indent=2)}")
```


Voltar para o início ↺

## 🌐 Implementando o Webscraping

### Exemplo: Obter Clima e Coordenadas

```python
import requests

NOMINATIM_URL = "https://nominatim.openstreetmap.org/search.php"
OPEN_METEO_URL = "https://api.open-meteo.com/v1/forecast"
HEADERS = {"referer": "https://nominatim.openstreetmap.org/search.html"}

def get_coordinates(city_name):
params = {"q": city_name.strip(), "polygon_geojson": 1, "format": "jsonv2"}
response = requests.get(NOMINATIM_URL, params=params, headers=HEADERS)
if response.status_code == 200:
location = response.json()[0]
return float(location["lat"]), float(location["lon"])
else:
print(f"Erro ao obter coordenadas: {response.status_code}")

def get_weather(lat, lon):
params = {"latitude": lat, "longitude": lon, "current_weather": True}
response = requests.get(OPEN_METEO_URL, params=params)
if response.status_code == 200:
weather = response.json()["current_weather"]
return weather["temperature"], weather["weathercode"]
else:
print(f"Erro ao obter clima: {response.status_code}")

city = input("\nDigite o nome da cidade: ")
lat, lon = get_coordinates(city)
if lat and lon:
temp, weather_code = get_weather(lat, lon)
print(f"\nClima em {city}:\nTemperatura: {temp}ºC\nCódigo do clima: {weather_code}")
```


Voltar para o início ↺

## 🛠️ Tecnologias Utilizadas
- **Python**
- **Requests**


Voltar para o início ↺

## 🤝 Contribuições

Todas as contribuições ao projeto são bem vindas!
Se você deseja contribuir para este projeto, há várias maneiras de fazer isso. Você pode:



  • Reportar bugs ou problemas;

  • Propor novos recursos ou melhorias;

  • Corrigir problemas através de pull requests;

  • Ajudar a melhorar a documentação;

  • Compartilhar o projeto com outras pessoas.


Para saber mais sobre como contribuir, consulte o guia de contribuição CONTRIBUTING.md.


Voltar para o início ↺



## 👤 Autor





Profile Pic - Juletopi


Júlio Cézar | Juletopi











Portfolio
Portfolio —

juletopi.github.io/JCPC_Portfolio



Voltar para o início ↺


----


Feito com 🤍 e ☕ por Juletopi.