Skip to main content

🌐 Um scraper que retorna o HTML completo de uma URL, tags, classes e atributos usando BeautifulSoup

Project description

🚀 README.md

🌐 Scrapy-HTML

🔍 Scrapy-HTML é um pacote Python simples e eficiente para scraping de conteúdo HTML de qualquer página web. Agora com parâmetros avançados para filtragem por tag, múltiplas tags, classe CSS e atributos personalizados, tornando a raspagem muito mais flexível e poderosa. Ele utiliza as bibliotecas BeautifulSoup4 e Requests para realizar a raspagem e retornar o HTML de forma estruturada e legível.


Características Principais

  • 🌎 Faz scraping de qualquer página web com uma URL válida.
  • 🔍 Filtragem avançada por:
    • Tag única (tag)
    • Múltiplas tags (tags)
    • Classe CSS (class_)
    • ID (id_)
    • Atributos personalizados (attrs)
    • Headers HTTP personalizados (headers)
  • ⚡ Retorna o HTML formatado e legível usando BeautifulSoup.
  • 🔒 Tratamento de erros robusto para URLs inválidas ou problemas de rede.
  • 💡 Leve e fácil de usar, com dependências mínimas.

Instalação

Instale o pacote diretamente do PyPI:

pip install scrapy_html

💻 Como Usar

🔥 Exemplo básico de uso:

from scrapy_html.scraper import get_html_content

# 🌐 URL da página
url = "https://www.example.com"

# 🔄 Obtendo o conteúdo HTML completo
dados = get_html_content(url)
print(dados)

🎯 Filtragem Avançada:

🔍 Filtrar por tag única:

dados = get_html_content(url, tag="p")
print(dados)  # Exibe todas as tags <p>

🏷 Filtrar por múltiplas tags:

dados = get_html_content(url, tags="div,span")
print(dados)  # Exibe todas as tags <div> e <span>

🎨 Filtrar por classe CSS:

dados = get_html_content(url, tag="a", class_="link-destaque")
print(dados)

🆔 Filtrar por ID:

dados = get_html_content(url, tag="section", id_="conteudo-principal")
print(dados)

🛠 Filtrar por atributos personalizados:

dados = get_html_content(url, tag="img", attrs={"alt": "Imagem principal"})
print(dados)

🔒 Usar headers personalizados:

headers = {
    "User-Agent": "Mozilla/5.0",
    "Accept": "text/html",
    "Accept-Language": "pt-BR"
}
dados = get_html_content(url, headers=headers)
print(dados)

🛠 Requisitos

As dependências são instaladas automaticamente com:

pip install scrapy_html

🧪 Testes

Este projeto inclui testes usando pytest. Para rodar os testes localmente:

pip install pytest
pytest tests/

🎨 Recursos Futuros

  • 🔍 Parâmetros avançados para scraping filtrado.
  • 🌐 Suporte a diferentes parsers (lxml, html5lib).
  • 🔄 Scraping assíncrono para maior desempenho.
  • ⚡ Download de recursos estáticos (imagens, CSS, JS).
  • 🧪 Testes automatizados avançados com requests-mock.

🏗 Estrutura do Projeto

scrapy_html/
│
├── scrapy_html/             # 📦 Código principal
│   ├── __init__.py
│   └── scraper.py           # ⚡ Função principal: get_html_content()
│
├── tests/                   # 🧪 Testes automatizados
│   └── test_scraper.py
│
├── setup.py                 # ⚙️ Configuração para PyPI
├── pyproject.toml           # 📦 Configuração moderna
├── README.md                # 📚 Documentação do projeto
├── LICENSE                  # 📜 Licença MIT
└── MANIFEST.in              # 📋 Inclusão de arquivos extras

🔧 Contribuindo

Contribuições são bem-vindas! 🚀
Para contribuir, siga estas etapas:

  1. Fork este repositório.
  2. Crie uma nova branch:
    git checkout -b minha-nova-funcionalidade
    
  3. Faça suas alterações e commit:
    git commit -m "✨ Adicionando nova funcionalidade incrível"
    
  4. Envie para o branch:
    git push origin minha-nova-funcionalidade
    
  5. Abra um Pull Request. 💡

📝 Licença

Distribuído sob a Licença MIT. Veja o arquivo LICENSE para mais informações.


👨‍💻 Autor

Desenvolvido por Roberto Lima 🚀✨


💬 Contato


Gostou do projeto?

Deixe uma ⭐ no repositório e compartilhe com a comunidade! 🚀✨


🌟 O que este README oferece?

  • 🎯 Descrição clara do projeto e seu propósito.
  • 🛠 Instruções detalhadas de instalação e uso prático.
  • 🧪 Guia de testes para garantir que o código funciona.
  • 🏗 Estrutura do projeto para facilitar a navegação.
  • 🔄 Seção de contribuição para quem deseja ajudar no desenvolvimento.
  • 📝 Licença e informações do autor para transparência.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scrapy_html-1.1.5.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scrapy_html-1.1.5-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file scrapy_html-1.1.5.tar.gz.

File metadata

  • Download URL: scrapy_html-1.1.5.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.7

File hashes

Hashes for scrapy_html-1.1.5.tar.gz
Algorithm Hash digest
SHA256 6ebb0d1b50b24e8fb13af6a5a619db30400482b4a0ab78abe90644f282ddcff0
MD5 c8cefd40e0a6dcd45b0f9aabcad9b781
BLAKE2b-256 c0408f577ad5e066ae164aa94d2b623cd17ccbba7cd0a0e79bec0b558b1a11d0

See more details on using hashes here.

File details

Details for the file scrapy_html-1.1.5-py3-none-any.whl.

File metadata

  • Download URL: scrapy_html-1.1.5-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.7

File hashes

Hashes for scrapy_html-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 29297035f16fb3df4809077e19a92be66f0e24b83fd161eb2bee910711554470
MD5 91c8fcc4899691e18244cd122d412ac8
BLAKE2b-256 e63ce7abf72cbf47c12afa69d474e6ee61b3c055fd44955b539e40b05a1949f9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page