Skip to main content

Install

pip3 install simple-crawler

Set environment AUTO_CHARSET=1 to pass bytes to beautifulsoup4 and let it detect the charset.

Classes

  • URL: define a URL
  • URLExt: class to handle URL
  • Page: define a request result of a URL
    • url: type URL
    • content, text, json: response content properties from library requests
    • type: the response body type, is a enum which allows BYTES, TEXT, HTML, JSON
    • is_html: check whether is html accorrding to the response headers's Content-Type
    • soup: BeautifulSoup contains html if is_html
  • Crawler: schedule the crawler by calling handler_page() recusively

Example

from simple_crawler import *


class MyCrawler(Crawler):
    name = 'output.txt'
    aysnc def custom_handle_page(self, page):
        print(page.url)
        tags = page.soup.select("#container")
        tag = tags and tags[0]
        with open(self.name, 'a') as f:
            f.write(tag.text)
        # do some async call

    def filter_url(self, url: URL) -> bool:
        return url.url.startswith("https://xxx.com/xxx")


loop = get_event_loop(True)
c = MyCrawler("https://xxx.com/xxx", loop, concurrency=10)
schedule_future_in_loop(c.start(), loop=loop)

TODO

  • Speed up using async or threading

Metadata

Release files for simple-crawler 1.2

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

Built distribution (wheel)

Table of built distributions (wheels) for simple-crawler 1.2
File Interpreter ABI Platform
simple_crawler-1.2-py3-none-any.whl Python 3 none any Details

Release files / simple_crawler-1.2-py3-none-any.whl

Download URL simple_crawler-1.2-py3-none-any.whl
Size 4.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f61142598cf572cdc323aa12c1bc6619ad033f21254e9986e7acefde07c035bc
BLAKE2b-256 checksum
How to use checksums
fd58c4e510ff908d0bd3ee3f457f53960e8059ed37b425a8458bd11e511366aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.1

Security for simple-crawler 1.2

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.

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