Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

VINEWS

An open-source library dedicated to searching and scraping Vietnamese news websites with the goal of providing tools and enhancing AI agents news searching capabilities.

Note: This library is still under active development. Expect bugs and incomplete features. Contributions are welcome and appreciated!

Disclaimer & Terms of Use ‼️

This library is provided for educational and research purposes only. You are solely responsible for how you use it. Before scraping any website, you must ensure that your actions comply with all applicable laws and the website’s own policies — including their Terms of Service and robots.txt directives. Many websites explicitly prohibit automated access. The authors and contributors are not responsible for any misuse or legal issues arising from the use of this tool. Always scrape ethically, respectfully, and within legal boundaries.

Responsible Scraping ‼️

Please be respectful of the websites you interact with. Always use appropriate rate limiting and avoid sending excessive requests. Scraping should never disrupt or degrade the performance of a website. Generating unreasonable traffic may not only lead to IP bans but could also violate legal or ethical standards. Respect the site's resources, policies, and the efforts of its creators.

Supported Websites

  • VnExpress
  • more coming soon...

Installation

pip install vinews==0.1.0b5

Quick Start

from vinews.modules.vnexpress.search import VinewsVnExpressSearch
import asyncio
import json

search_engine = VinewsVnExpressSearch()
query = "Bitcoin"
    
# Test synchronous search
results = search_engine.search(query=query, date_range="day", category="kinhdoanh", limit=5, advanced=True)
print(results)

homepage = search_engine.search_homepage()
print(homepage)    

def vinews_async():
    # Test asynchronous search
    async def async_test():
        async_results = await search_engine.async_search(query=query, date_range="day", category="kinhdoanh", limit=5, advanced=True)
        
        async_homepage = await search_engine.async_search_homepage()

        # Optional saving
        with open("tests/output/vnexpress_search.json", "w", encoding="utf-8") as f:
            json.dump(async_results.model_dump(), f, indent=2, ensure_ascii=False)
        
        with open("tests/output/vnexpress_homepage.json", "w", encoding="utf-8") as f:
            json.dump(async_homepage.model_dump(), f, indent=2, ensure_ascii=False)
    
    asyncio.run(async_test())

if __name__ == "__main__":
    vinews_async()

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the Apache 2.0 - see the LICENSE file for details.

Metadata

Release files for vinews 0.1.0b5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vinews 0.1.0b5
File Size Uploaded Provenance
vinews-0.1.0b5.tar.gz 23.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for vinews 0.1.0b5
File Interpreter ABI Platform
vinews-0.1.0b5-py3-none-any.whl Python 3 none any Details

Total release size: 48.0 kB

Release files / vinews-0.1.0b5.tar.gz

Download URL vinews-0.1.0b5.tar.gz
Size 23.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1191c8fc367baeb2117534252a7c0e41c91bd823160b6bf52dfd473f600ad84d
BLAKE2b-256 checksum
How to use checksums
f4c79164d339499617be993f5ccd11326fd14d98c43853a28357980485623c91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / vinews-0.1.0b5-py3-none-any.whl

Download URL vinews-0.1.0b5-py3-none-any.whl
Size 24.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba2547f5c9ca3f8a14443be9cf1d447512cec07462b7941f913bb075a9946121
BLAKE2b-256 checksum
How to use checksums
2dd99ac650647aee9888714a33e0648cd81ac978930e7e2eb73aef8b250a64be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Security for vinews 0.1.0b5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page