dev-master
9999999-devAllows crawling of a pages and nodes
MIT
The Requires
1.0.x-dev
1.0.9999999.9999999-devAllows crawling of a pages and nodes
MIT
The Requires
Allows crawling of a pages and nodes
Crawler for Neos CMS nodes and sites. It can be used to warm up the caches after a release or dump your site as html files., (*1)
Run the following command in your project, (*2)
composer require shel/crawler
To crawl all pages based on a single sitemap run, (*3)
./flow crawler:crawlsitemap --url=http://huve.de.test/sitemap.xml --simultaneousLimit=10 --delay=0
To crawl all pages based on all sitemaps listed in a robots.txt file, (*4)
./flow crawler:crawlrobotstxt --url=http://huve.de.test/robots.txt --simultaneousLimit=10 --delay=0
This command will try to generate all page html without using actual requests and only renders them internally. Due to the complexity of the page context, this might not give the desired results, but the resulting html of alle crawled pages can be stored for further usage., (*5)
This can be much faster as all pages are rendered in one process and all caches are reused., (*6)
To make this work, you need make provide a valid hostname., (*7)
This can be done via one of the following ways:, (*8)
Neos.Flow.http.baseUri
setting for Neos in your Settings.yaml
baseUri
in general via the environment variable CRAWLER_BASE_URI
and use the example in Configuration/Production/Settings.yaml
./flow crawler:crawlnodes --siteNodeName <sitename>
To crawl all sites based on their primary active domain:, (*9)
./flow crawler:crawlsites
To crawl all sites based on their primary active domain and use the URLs listed in robots.txt:, (*10)
./flow crawler:crawlsites --method robotstxt
By providing the outputPath
you can store all crawled content as html files., (*11)
./flow crawler:crawlnodes --siteNodeName <sitename> --outputPath=Web/cache
You can use this actually as a super simple static file cache by adapting your webserver configuration. There is an example for nginx:, (*12)
# Serve a cached page matching the request if it exists location / { default_type "text/html"; try_files /cache/$uri $uri $uri/ /index.php?$args; } # Serve cache/index(.html) instead of / if it exists location = / { default_type "text/html"; try_files /cache/index.html /cache/index /index.php?$args; }
You replace the existing try_files
part with the given code and adapt the path cache
if you use a different one.
This cache feature is really experimental, and you are currently in charge of keeping the files up-to-date and removing old ones., (*13)
Contributions or sponsorships are very welcome., (*14)
Allows crawling of a pages and nodes
MIT
Allows crawling of a pages and nodes
MIT