Initial commit
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
Beautiful Soup is a library that makes it easy to scrape information
|
||||
from web pages. It sits atop an HTML or XML parser, providing Pythonic
|
||||
idioms for iterating, searching, and modifying the parse tree.
|
||||
|
||||
# Quick start
|
||||
|
||||
```
|
||||
>>> from bs4 import BeautifulSoup
|
||||
>>> soup = BeautifulSoup("<p>Some<b>bad<i>HTML")
|
||||
>>> print soup.prettify()
|
||||
<html>
|
||||
<body>
|
||||
<p>
|
||||
Some
|
||||
<b>
|
||||
bad
|
||||
<i>
|
||||
HTML
|
||||
</i>
|
||||
</b>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
>>> soup.find(text="bad")
|
||||
u'bad'
|
||||
>>> soup.i
|
||||
<i>HTML</i>
|
||||
#
|
||||
>>> soup = BeautifulSoup("<tag1>Some<tag2/>bad<tag3>XML", "xml")
|
||||
#
|
||||
>>> print soup.prettify()
|
||||
<?xml version="1.0" encoding="utf-8">
|
||||
<tag1>
|
||||
Some
|
||||
<tag2 />
|
||||
bad
|
||||
<tag3>
|
||||
XML
|
||||
</tag3>
|
||||
</tag1>
|
||||
```
|
||||
|
||||
To go beyond the basics, [comprehensive documentation is available](http://www.crummy.com/software/BeautifulSoup/bs4/doc/).
|
||||
|
||||
# Links
|
||||
|
||||
* [Homepage](http://www.crummy.com/software/BeautifulSoup/bs4/)
|
||||
* [Documentation](http://www.crummy.com/software/BeautifulSoup/bs4/doc/)
|
||||
* [Discussion group](http://groups.google.com/group/beautifulsoup/)
|
||||
* [Development](https://code.launchpad.net/beautifulsoup/)
|
||||
* [Bug tracker](https://bugs.launchpad.net/beautifulsoup/)
|
||||
* [Complete changelog](https://bazaar.launchpad.net/~leonardr/beautifulsoup/bs4/view/head:/CHANGELOG)
|
||||
|
||||
# Note on Python 2 sunsetting
|
||||
|
||||
Since 2012, Beautiful Soup has been developed as a Python 2 library
|
||||
which is automatically converted to Python 3 code as necessary. This
|
||||
makes it impossible to take advantages of some features of Python
|
||||
3.
|
||||
|
||||
For this reason, I plan to discontinue Beautiful Soup's Python 2
|
||||
support at some point after January 1, 2021: one year after the sunset
|
||||
date for Python 2 itself. Beyond that point, new Beautiful Soup
|
||||
development will exclusively target Python 3. Of course, older
|
||||
releases of Beautiful Soup, which support both versions, will continue
|
||||
to be available.
|
||||
|
||||
# Supporting the project
|
||||
|
||||
If you use Beautiful Soup as part of your professional work, please consider a
|
||||
[Tidelift subscription](https://tidelift.com/subscription/pkg/pypi-beautifulsoup4?utm_source=pypi-beautifulsoup4&utm_medium=referral&utm_campaign=readme).
|
||||
This will support many of the free software projects your organization
|
||||
depends on, not just Beautiful Soup.
|
||||
|
||||
If you use Beautiful Soup for personal projects, the best way to say
|
||||
thank you is to read
|
||||
[Tool Safety](https://www.crummy.com/software/BeautifulSoup/zine/), a zine I
|
||||
wrote about what Beautiful Soup has taught me about software
|
||||
development.
|
||||
|
||||
# Building the documentation
|
||||
|
||||
The bs4/doc/ directory contains full documentation in Sphinx
|
||||
format. Run `make html` in that directory to create HTML
|
||||
documentation.
|
||||
|
||||
# Running the unit tests
|
||||
|
||||
Beautiful Soup supports unit test discovery from the project root directory:
|
||||
|
||||
```
|
||||
$ nosetests
|
||||
```
|
||||
|
||||
```
|
||||
$ python -m unittest discover -s bs4
|
||||
```
|
||||
|
||||
If you checked out the source tree, you should see a script in the
|
||||
home directory called test-all-versions. This script will run the unit
|
||||
tests under Python 2, then create a temporary Python 3 conversion of
|
||||
the source and run the unit tests again under Python 3.
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
pip
|
||||
@@ -0,0 +1,130 @@
|
||||
Metadata-Version: 2.0
|
||||
Name: beautifulsoup4
|
||||
Version: 4.8.1
|
||||
Summary: Screen-scraping library
|
||||
Home-page: http://www.crummy.com/software/BeautifulSoup/bs4/
|
||||
Author: Leonard Richardson
|
||||
Author-email: leonardr@segfault.org
|
||||
License: MIT
|
||||
Download-URL: http://www.crummy.com/software/BeautifulSoup/bs4/download/
|
||||
Platform: UNKNOWN
|
||||
Classifier: Development Status :: 5 - Production/Stable
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: License :: OSI Approved :: MIT License
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 2.7
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Topic :: Text Processing :: Markup :: HTML
|
||||
Classifier: Topic :: Text Processing :: Markup :: XML
|
||||
Classifier: Topic :: Text Processing :: Markup :: SGML
|
||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||
Requires-Dist: soupsieve (>=1.2)
|
||||
Provides-Extra: html5lib
|
||||
Requires-Dist: html5lib; extra == 'html5lib'
|
||||
Provides-Extra: lxml
|
||||
Requires-Dist: lxml; extra == 'lxml'
|
||||
|
||||
Beautiful Soup is a library that makes it easy to scrape information
|
||||
from web pages. It sits atop an HTML or XML parser, providing Pythonic
|
||||
idioms for iterating, searching, and modifying the parse tree.
|
||||
|
||||
# Quick start
|
||||
|
||||
```
|
||||
>>> from bs4 import BeautifulSoup
|
||||
>>> soup = BeautifulSoup("<p>Some<b>bad<i>HTML")
|
||||
>>> print soup.prettify()
|
||||
<html>
|
||||
<body>
|
||||
<p>
|
||||
Some
|
||||
<b>
|
||||
bad
|
||||
<i>
|
||||
HTML
|
||||
</i>
|
||||
</b>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
>>> soup.find(text="bad")
|
||||
u'bad'
|
||||
>>> soup.i
|
||||
<i>HTML</i>
|
||||
#
|
||||
>>> soup = BeautifulSoup("<tag1>Some<tag2/>bad<tag3>XML", "xml")
|
||||
#
|
||||
>>> print soup.prettify()
|
||||
<?xml version="1.0" encoding="utf-8">
|
||||
<tag1>
|
||||
Some
|
||||
<tag2 />
|
||||
bad
|
||||
<tag3>
|
||||
XML
|
||||
</tag3>
|
||||
</tag1>
|
||||
```
|
||||
|
||||
To go beyond the basics, [comprehensive documentation is available](http://www.crummy.com/software/BeautifulSoup/bs4/doc/).
|
||||
|
||||
# Links
|
||||
|
||||
* [Homepage](http://www.crummy.com/software/BeautifulSoup/bs4/)
|
||||
* [Documentation](http://www.crummy.com/software/BeautifulSoup/bs4/doc/)
|
||||
* [Discussion group](http://groups.google.com/group/beautifulsoup/)
|
||||
* [Development](https://code.launchpad.net/beautifulsoup/)
|
||||
* [Bug tracker](https://bugs.launchpad.net/beautifulsoup/)
|
||||
* [Complete changelog](https://bazaar.launchpad.net/~leonardr/beautifulsoup/bs4/view/head:/CHANGELOG)
|
||||
|
||||
# Note on Python 2 sunsetting
|
||||
|
||||
Since 2012, Beautiful Soup has been developed as a Python 2 library
|
||||
which is automatically converted to Python 3 code as necessary. This
|
||||
makes it impossible to take advantages of some features of Python
|
||||
3.
|
||||
|
||||
For this reason, I plan to discontinue Beautiful Soup's Python 2
|
||||
support at some point after January 1, 2021: one year after the sunset
|
||||
date for Python 2 itself. Beyond that point, new Beautiful Soup
|
||||
development will exclusively target Python 3. Of course, older
|
||||
releases of Beautiful Soup, which support both versions, will continue
|
||||
to be available.
|
||||
|
||||
# Supporting the project
|
||||
|
||||
If you use Beautiful Soup as part of your professional work, please consider a
|
||||
[Tidelift subscription](https://tidelift.com/subscription/pkg/pypi-beautifulsoup4?utm_source=pypi-beautifulsoup4&utm_medium=referral&utm_campaign=readme).
|
||||
This will support many of the free software projects your organization
|
||||
depends on, not just Beautiful Soup.
|
||||
|
||||
If you use Beautiful Soup for personal projects, the best way to say
|
||||
thank you is to read
|
||||
[Tool Safety](https://www.crummy.com/software/BeautifulSoup/zine/), a zine I
|
||||
wrote about what Beautiful Soup has taught me about software
|
||||
development.
|
||||
|
||||
# Building the documentation
|
||||
|
||||
The bs4/doc/ directory contains full documentation in Sphinx
|
||||
format. Run `make html` in that directory to create HTML
|
||||
documentation.
|
||||
|
||||
# Running the unit tests
|
||||
|
||||
Beautiful Soup supports unit test discovery from the project root directory:
|
||||
|
||||
```
|
||||
$ nosetests
|
||||
```
|
||||
|
||||
```
|
||||
$ python -m unittest discover -s bs4
|
||||
```
|
||||
|
||||
If you checked out the source tree, you should see a script in the
|
||||
home directory called test-all-versions. This script will run the unit
|
||||
tests under Python 2, then create a temporary Python 3 conversion of
|
||||
the source and run the unit tests again under Python 3.
|
||||
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
beautifulsoup4-4.8.1.dist-info/DESCRIPTION.rst,sha256=TUEndO1FnBoCMGIeuX9tkAhKSylXB1t_NUSYxDo6ce4,3010
|
||||
beautifulsoup4-4.8.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
beautifulsoup4-4.8.1.dist-info/METADATA,sha256=ZQSTtI3Y6TP3LVrckhEel5QhfhqT8pwwvBuronGBz34,4020
|
||||
beautifulsoup4-4.8.1.dist-info/RECORD,,
|
||||
beautifulsoup4-4.8.1.dist-info/WHEEL,sha256=rNo05PbNqwnXiIHFsYm0m22u4Zm6YJtugFG2THx4w3g,92
|
||||
beautifulsoup4-4.8.1.dist-info/metadata.json,sha256=RNf83TEq3M65TUoCk_oElvbCdiLyo_AQuj0f7SNVEGc,1144
|
||||
beautifulsoup4-4.8.1.dist-info/top_level.txt,sha256=H8VT-IuPWLzQqwG9_eChjXDJ1z0H9RRebdSR90Bjnkw,4
|
||||
bs4/__init__.py,sha256=VF0X3wc9hsmeJiMt630mwChrwIc58DYt4c9vP2ky-w4,25903
|
||||
bs4/__pycache__/__init__.cpython-37.pyc,,
|
||||
bs4/__pycache__/check_block.cpython-37.pyc,,
|
||||
bs4/__pycache__/dammit.cpython-37.pyc,,
|
||||
bs4/__pycache__/diagnose.cpython-37.pyc,,
|
||||
bs4/__pycache__/element.cpython-37.pyc,,
|
||||
bs4/__pycache__/formatter.cpython-37.pyc,,
|
||||
bs4/__pycache__/testing.cpython-37.pyc,,
|
||||
bs4/builder/__init__.py,sha256=e_vTLD3AkgUTjUXkc04b0FZHJBRaVM8SDxvVNMnLXtE,14749
|
||||
bs4/builder/__pycache__/__init__.cpython-37.pyc,,
|
||||
bs4/builder/__pycache__/_html5lib.cpython-37.pyc,,
|
||||
bs4/builder/__pycache__/_htmlparser.cpython-37.pyc,,
|
||||
bs4/builder/__pycache__/_lxml.cpython-37.pyc,,
|
||||
bs4/builder/_html5lib.py,sha256=105ocel2oFeApKaPem5XtjL67kO5rKJxM5_6B2gxBw0,18088
|
||||
bs4/builder/_htmlparser.py,sha256=AKpOnUAoPBYi7x0Y1fTb1Uxrxb2EFroWIdCWgwShcF4,13653
|
||||
bs4/builder/_lxml.py,sha256=BsJBgIoyIZYY001TSHLtEsJtYD5hCXhldwpUEaYaJkg,11114
|
||||
bs4/check_block.py,sha256=ltAO73VRGrGcO0bVPMd0GdTlIg9eVTCGnnZiPbKzFI0,132
|
||||
bs4/dammit.py,sha256=VcHa3eSGP6bL3UuCrjMy_auYO7tTH42I-lhNDbrMsy8,31028
|
||||
bs4/diagnose.py,sha256=wvGDZf6VNj6rwDjU3xOsz90z2KZiBWgpu-GRqWfR6is,6966
|
||||
bs4/element.py,sha256=ebosrK3jVgnZ4Dr7kmrJdfRUu8JkENXKQHwNKPcA2QE,59447
|
||||
bs4/formatter.py,sha256=G2AYBRjeX404vLNwIPbjiG8KDjuoCqrgi9NHua6o34M,3199
|
||||
bs4/testing.py,sha256=MBsN77WRpB1Z78Y0pV7RlwbMWGfEU1iPySFKE-JJIgc,41306
|
||||
bs4/tests/__init__.py,sha256=bdUBDE750n7qNEfue7-3a1fBaUxJlvZMkvJvZa-lbYs,27
|
||||
bs4/tests/__pycache__/__init__.cpython-37.pyc,,
|
||||
bs4/tests/__pycache__/test_builder_registry.cpython-37.pyc,,
|
||||
bs4/tests/__pycache__/test_docs.cpython-37.pyc,,
|
||||
bs4/tests/__pycache__/test_html5lib.cpython-37.pyc,,
|
||||
bs4/tests/__pycache__/test_htmlparser.cpython-37.pyc,,
|
||||
bs4/tests/__pycache__/test_lxml.cpython-37.pyc,,
|
||||
bs4/tests/__pycache__/test_soup.cpython-37.pyc,,
|
||||
bs4/tests/__pycache__/test_tree.cpython-37.pyc,,
|
||||
bs4/tests/test_builder_registry.py,sha256=pllfRpArh9TYhjjRUiu1wITr9Ryyv4hiaAtRjij-k4E,5582
|
||||
bs4/tests/test_docs.py,sha256=FXfz2bGL4Xe0q6duwpmg9hmFiZuU4DVJPNZ0hTb6aH4,1067
|
||||
bs4/tests/test_html5lib.py,sha256=R2zNUUbUa3WnSqGGOiARKDWH1TLguogluqQDr10Gick,6493
|
||||
bs4/tests/test_htmlparser.py,sha256=N-wPX5jDOy7b8xUv9pHEIEfEFjOitLuD9V1blKcbscM,2354
|
||||
bs4/tests/test_lxml.py,sha256=xJr8eDrtHSb_vQw88lYEKyfdM1Hel4-dBaz14vQq78M,4105
|
||||
bs4/tests/test_soup.py,sha256=JbjlyIKCmUnVNfEHq3aPjyj-w7WZEgE9cAV-LOx6xwo,27613
|
||||
bs4/tests/test_tree.py,sha256=XBRpEOpAEvDhOeSSN857U5OcjdvfqmYT3bDNN8Qbabw,86259
|
||||
@@ -0,0 +1,5 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: bdist_wheel (0.29.0)
|
||||
Root-Is-Purelib: true
|
||||
Tag: py3-none-any
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"classifiers": ["Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Text Processing :: Markup :: HTML", "Topic :: Text Processing :: Markup :: XML", "Topic :: Text Processing :: Markup :: SGML", "Topic :: Software Development :: Libraries :: Python Modules"], "download_url": "http://www.crummy.com/software/BeautifulSoup/bs4/download/", "extensions": {"python.details": {"contacts": [{"email": "leonardr@segfault.org", "name": "Leonard Richardson", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "http://www.crummy.com/software/BeautifulSoup/bs4/"}}}, "extras": ["html5lib", "lxml"], "generator": "bdist_wheel (0.29.0)", "license": "MIT", "metadata_version": "2.0", "name": "beautifulsoup4", "run_requires": [{"extra": "html5lib", "requires": ["html5lib"]}, {"extra": "lxml", "requires": ["lxml"]}, {"requires": ["soupsieve (>=1.2)"]}], "summary": "Screen-scraping library", "version": "4.8.1"}
|
||||
@@ -0,0 +1 @@
|
||||
bs4
|
||||
Reference in New Issue
Block a user