{"schema_version":1,"metadata":{"branch":"current","release":"7.9","architecture":"amd64","generated_at":"2026-09-09T04:04:41.004595+00:00","source_url":"https://cdn.openbsd.org/pub/OpenBSD/snapshots/packages/amd64/sqlports-7.55.tgz","source_sha256":"fcdbba1b9df747882aa9bab4af20ebec8dac10655069c90f1cd4145c06e1235e","package_count":12031,"source_kind":"sqlports"},"package":{"name":"py3-beautifulsoup4-4.15.0","path":"www/py-beautifulsoup4","url":"/packages/current/www/py-beautifulsoup4/","comment":"HTML/XML parser that supports invalid markup","homepage":"https://www.crummy.com/software/BeautifulSoup/","maintainer":"The OpenBSD ports mailing-list <ports@openbsd.org>","description":"Beautiful Soup is a Python library designed for quick turnaround projects\nlike screen-scraping from web pages. Three features make it powerful:\n\nBeautiful Soup provides a few simple methods and Pythonic idioms for\nnavigating, searching, and modifying a parse tree: a toolkit for\ndissecting a document and extracting what you need. It doesn't take much\ncode to write an application.\n\nBeautiful Soup automatically converts incoming documents to Unicode and\noutgoing documents to UTF-8. You don't have to think about encodings,\nunless the document doesn't specify an encoding and Beautiful Soup can't\ndetect one. Then you just have to specify the original encoding.\n\nBeautiful Soup sits on top of popular Python parsers like lxml and\nhtml5lib, allowing you to try out different parsing strategies or trade\nspeed for flexibility.\n\nBeautiful Soup parses anything you give it, and does the tree traversal\nstuff for you. You can tell it \"Find all the links\", or \"Find all the\nlinks of class externalLink\", or \"Find all the links whose urls match\n\"foo.com\", or \"Find the table heading that's got bold text, then give me\nthat text.\"\n\nValuable data that was once locked up in poorly-designed websites is\nnow within your reach. Projects that would have taken hours take only\nminutes with Beautiful Soup.\n","package_architecture":"amd64","stem":"py3-beautifulsoup4","readme":null,"dependencies":[{"path":"devel/py-typing-extensions","type":"runtime","package_spec":"","url":"/packages/current/devel/py-typing-extensions/"},{"path":"www/py-soupsieve","type":"runtime","package_spec":"","url":"/packages/current/www/py-soupsieve/"},{"path":"lang/python/3","type":"runtime","package_spec":"","url":"/packages/current/lang/python/3/"},{"path":"lang/python/3","type":"build","package_spec":"","url":"/packages/current/lang/python/3/"},{"path":"devel/py-build","type":"build","package_spec":"","url":"/packages/current/devel/py-build/"},{"path":"devel/py-installer","type":"build","package_spec":"","url":"/packages/current/devel/py-installer/"},{"path":"devel/py-hatchling","type":"build","package_spec":"","url":"/packages/current/devel/py-hatchling/"},{"path":"devel/py-typing-extensions","type":"test","package_spec":"","url":"/packages/current/devel/py-typing-extensions/"},{"path":"www/py-soupsieve","type":"test","package_spec":"","url":"/packages/current/www/py-soupsieve/"},{"path":"lang/python/3","type":"test","package_spec":"","url":"/packages/current/lang/python/3/"},{"path":"devel/py-test","type":"test","package_spec":"","url":"/packages/current/devel/py-test/"}],"reverse_dependencies":{"count":34,"url":"/packages/data/4c/4c6edc5c1a1e0d13592905ceb13eca4fe1d51c5f3a5b76a3447cd92b0f926e74.json"},"categories":["www","lang/python"],"flavors":[],"only_for_architectures":["aarch64","amd64","arm","i386","mips64","mips64el","powerpc","powerpc64","riscv64","sparc64","alpha","hppa"],"not_for_architectures":[]}}
