{"id":16865799,"url":"https://github.com/hellock/icrawler","last_synced_at":"2025-05-14T02:07:55.817Z","repository":{"id":47023433,"uuid":"54264154","full_name":"hellock/icrawler","owner":"hellock","description":"A multi-thread crawler framework with many builtin image crawlers provided.","archived":false,"fork":false,"pushed_at":"2025-03-13T13:53:32.000Z","size":289,"stargazers_count":881,"open_issues_count":35,"forks_count":179,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-05-12T20:05:12.003Z","etag":null,"topics":["bing-image","crawler","flickr-api","google-images","python","scrapy","spider"],"latest_commit_sha":null,"homepage":"http://icrawler.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellock.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-03-19T12:12:36.000Z","updated_at":"2025-05-09T11:56:01.000Z","dependencies_parsed_at":"2024-06-18T14:07:37.265Z","dependency_job_id":"023178ee-5310-451c-b505-ef88de6288ee","html_url":"https://github.com/hellock/icrawler","commit_stats":{"total_commits":177,"total_committers":24,"mean_commits":7.375,"dds":0.3107344632768362,"last_synced_commit":"f7f610795c6000f54a0f632cf38bf590d74a06ac"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellock%2Ficrawler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellock%2Ficrawler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellock%2Ficrawler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellock%2Ficrawler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellock","download_url":"https://codeload.github.com/hellock/icrawler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253815025,"owners_count":21968563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bing-image","crawler","flickr-api","google-images","python","scrapy","spider"],"created_at":"2024-10-13T14:48:32.292Z","updated_at":"2025-05-14T02:07:50.797Z","avatar_url":"https://github.com/hellock.png","language":"Python","readme":"icrawler\n========\n\n.. image:: https://img.shields.io/pypi/v/icrawler.svg\n   :target: https://pypi.python.org/pypi/icrawler\n   :alt: PyPI Version\n\n.. image:: https://anaconda.org/hellock/icrawler/badges/version.svg\n   :target: https://anaconda.org/hellock/icrawler\n   :alt: Anaconda Version\n\n.. image:: https://img.shields.io/pypi/pyversions/icrawler.svg\n   :alt: Python Version\n\n.. image:: \thttps://img.shields.io/github/license/hellock/icrawler.svg\n   :alt: License\n\nIntroduction\n------------\n\nDocumentation: http://icrawler.readthedocs.io/\n\nTry it with ``pip install icrawler`` or ``conda install -c hellock icrawler``.\n\nThis package is a mini framework of web crawlers. With modularization design,\nit is easy to use and extend. It supports media data like images and videos\nvery well, and can also be applied to texts and other type of files.\nScrapy is heavy and powerful, while icrawler is tiny and flexible.\n\nWith this package, you can write a multiple thread crawler easily by focusing on\nthe contents you want to crawl, keeping away from troublesome problems like\nexception handling, thread scheduling and communication.\n\nIt also provides built-in crawlers for popular image sites like **Flickr** and\nsearch engines such as **Google**, **Bing** and **Baidu**.\n(Thank all the contributors and pull requests are always welcome!)\n\nRequirements\n------------\n\nPython 3.5+ (recommended).\n\nExamples\n--------\n\nUsing built-in crawlers is very simple. A minimal example is shown as follows.\n\n.. code:: python\n\n    from icrawler.builtin import GoogleImageCrawler\n\n    google_crawler = GoogleImageCrawler(storage={'root_dir': 'your_image_dir'})\n    google_crawler.crawl(keyword='cat', max_num=100)\n\nYou can also configurate number of threads and apply advanced search options.\n(Note: compatible with 0.6.0 and later versions)\n\n.. code:: python\n\n    from icrawler.builtin import GoogleImageCrawler\n\n    google_crawler = GoogleImageCrawler(\n        feeder_threads=1,\n        parser_threads=2,\n        downloader_threads=4,\n        storage={'root_dir': 'your_image_dir'})\n    filters = dict(\n        size='large',\n        color='orange',\n        license='commercial,modify',\n        date=((2017, 1, 1), (2017, 11, 30)))\n    google_crawler.crawl(keyword='cat', filters=filters, max_num=1000, file_idx_offset=0)\n\nFor more advanced usage about built-in crawlers, please refer to the\n`documentation \u003chttp://icrawler.readthedocs.io/en/latest/builtin.html\u003e`_.\n\nWriting your own crawlers with this framework is also convenient, see the\n`tutorials \u003chttp://icrawler.readthedocs.io/en/latest/extend.html\u003e`_.\n\nArchitecture\n------------\n\nA crawler consists of 3 main components (Feeder, Parser and Downloader),\nthey are connected with each other with FIFO queues. The workflow is shown in\nthe following figure.\n\n.. figure:: http://7xopqn.com1.z0.glb.clouddn.com/workflow.png\n   :alt:\n\n-  ``url_queue`` stores the url of pages which may contain images\n-  ``task_queue`` stores the image url as well as any meta data you\n   like, each element in the queue is a dictionary and must contain the\n   field ``img_url``\n-  Feeder puts page urls to ``url_queue``\n-  Parser requests and parses the page, then extracts the image urls and\n   puts them into ``task_queue``\n-  Downloader gets tasks from ``task_queue`` and requests the images,\n   then saves them in the given path.\n\nFeeder, parser and downloader are all thread pools, so you can specify the\nnumber of threads they use.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellock%2Ficrawler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellock%2Ficrawler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellock%2Ficrawler/lists"}