GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Ne-Lexa/roach-php-bundle: Symfony bundle for roach-php/core

BranchesTags
Open more actions menu

Latest commit

 

History

34 Commits
34 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
src
src
 
 
tests
tests
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.php-cs-fixer.php
.php-cs-fixer.php
 
 
.scrutinizer.yml
.scrutinizer.yml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
composer.json
composer.json
 
 
logo.svg
logo.svg
 
 
phpunit.xml.dist
phpunit.xml.dist
 
 

Repository files navigation

roach-php-bundle

roach-php-bundle

Symfony bundle for Roach PHP.

Latest Stable Version PHP Version Require Tests Build Status Scrutinizer Code Quality Code Coverage License

Roach is a complete web scraping toolkit for PHP. It is a shameless clone heavily inspired by the popular Scrapy package for Python.

The Symfony bundle mostly provides the necessary container bindings for the various services Roach uses, as well as making certain configuration options available via a config file. To learn about how to actually start using Roach itself, check out the rest of the documentation.

Installing the Symfony bundle

Add nelexa/roach-php-bundle to your composer.json file:

composer require nelexa/roach-php-bundle

Versions & Dependencies

Bundle version roach-php/core version Symfony version PHP version(s)
0.3.0 0.3.0 ^5.3 | ^6.0 >= 8.0
1.0.0 ^1.0.0 ^6.0 >= 8.0
1.1.0 1.1.* ^6.0 >= 8.0
1.1.1 1.1.* ^6.0 >= 8.0
2.0.0 ^3.2 ^7.0 | ^8.0 >= 8.2

Register the bundle:

Register bundle into config/bundles.php (Flex did it automatically):

return [
    //...
    \Nelexa\RoachPhpBundle\RoachPhpBundle::class => ['all' => true],
];

Available Commands

The Symfony bundle of Roach registers a few console commands to make out development experience as pleasant as possible.

Run spider

php bin/console roach:run

After that, you will get the entire list of available spiders.


 Choose a spider class:
  [0] App\Spider\GoogleSpider
  [1] App\Spider\FacebookSpider
  [2] App\Spider\TwitterSpider

Simply select the desired spider (▼ or ▲) or enter its number and press Enter.

You can pass as the first argument the name spider class name to run or its alias. For example, if you have a class App\Spider\GoogleSpider, then you can pass the following aliases: GoogleSpider, google_spider or google.

php bin/console roach:run google

Sometimes it is useful to override the number of concurrent requests and the pre-request delay. To do this, you can pass the --concurrency and --delay options.

php bin/console roach:php google --concurrency 8 --delay 2

These options override the $concurrency and $requestDelay public properties of your spider.

Add the --output (-o) option and you can save the collected data to a JSON file.

php bin/console roach:php google --output 'path/to/data.json'

Starting the REPL

Roach ships with an interactive shell (often called Read-Evaluate-Print-Loop, or Repl for short) which makes prototyping our spiders a breeze. We can use the provided roach:shell command to launch a new Repl session.

php bin/console roach:shell "https://roach-php.dev/docs/introduction"

Generator classes

First install Symfony MakerBundle.

composer require --dev symfony/maker-bundle

Create a new roach spider class

php bin/console make:roach:spider

Create a new roach extension class

php bin/console make:roach:extension

Create a new roach item processor class

php bin/console make:roach:item:processor

Create a new roach downloader request middleware class

php bin/console make:roach:middleware:downloader:request

Create a new roach downloader response middleware class

php bin/console make:roach:middleware:downloader:response

Create a new roach spider item middleware class

php bin/console make:roach:middleware:spider:item

Create a new roach spider request middleware class

php bin/console make:roach:middleware:spider:request

Create a new roach spider response middleware class

php bin/console make:roach:middleware:spider:response

Screencast

asciicast

Credits

  • Ne-Lexa
  • All contributors

Changelog

Changes are documented in the releases page.

License

The MIT License (MIT). Please see LICENSE for more information.

About

Symfony bundle for roach-php/core

Topics

crawlerphproach-phpscrapyspidersymfonysymfony-bundle

Resources

Readme
MIT license
Activity

Stars

10 stars

Watchers

3 watching

Forks

3 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.