![Website Content Crawler avatar](https://images.apifyusercontent.com/hchWWpDJQyd-Nh_2beH12X2c6MBfXEQc59HAA24sOAY/rs:fill:250:250/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMuYW1hem9uYXdzLmNvbS9hWUcwbDlzN2RiQjdqM2diUy9QZlRvRU5rSlp4YWh6UER1My1DbGVhblNob3RfMjAyMy0wMy0yOF9hdF8xMC40MC4yMF8yeC5wbmc.webp)
No credit card required
![Website Content Crawler](https://images.apifyusercontent.com/hchWWpDJQyd-Nh_2beH12X2c6MBfXEQc59HAA24sOAY/rs:fill:250:250/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMuYW1hem9uYXdzLmNvbS9hWUcwbDlzN2RiQjdqM2diUy9QZlRvRU5rSlp4YWh6UER1My1DbGVhblNob3RfMjAyMy0wMy0yOF9hdF8xMC40MC4yMF8yeC5wbmc.webp)
Website Content Crawler
No credit card required
Crawl websites and extract text content to feed AI models, LLM applications, vector databases, or RAG pipelines. The Actor supports rich formatting using Markdown, cleans the HTML, downloads files, and integrates well with 🦜🔗LangChain, LlamaIndex, and the wider LLM ecosystem.
Do you want to learn more about this Actor?
Get a demoCrawling claims to succeed, but crawls nothing and returns no results
Open
I have three Website Content Crawler jobs that run every Saturday night. Last week, one of the three jobs mysteriously failed to crawl anything or return any results. Its full log:
12024-06-30T00:03:30.322Z ACTOR: Pulling Docker image of build cxepl9SPHv3B0GfJ2 from repository. 22024-06-30T00:03:30.463Z ACTOR: Creating Docker container. 32024-06-30T00:03:51.362Z ACTOR: Starting Docker container. 42024-06-30T00:03:55.108Z Starting X virtual framebuffer using: Xvfb :99 -ac -screen 0 1920x1080x24+32 -nolisten tcp 52024-06-30T00:03:55.109Z Executing main command 62024-06-30T00:03:58.629Z INFO System info {"apifyVersion":"3.2.3","apifyClientVersion":"2.9.0","crawleeVersion":"3.10.3","osType":"Linux","nodeVersion":"v18.19.1"} 72024-06-30T00:03:59.116Z WARN A non-zero value of the `dynamicContentWaitSecs` option is not supported by the Cheerio crawler. 82024-06-30T00:04:16.425Z INFO HttpCrawler: Starting the crawler. 92024-06-30T00:04:16.802Z INFO CheerioCrawler: Starting the crawler. 102024-06-30T00:04:16.910Z INFO CheerioCrawler: All requests from the queue have been processed, the crawler will shut down. 112024-06-30T00:04:17.220Z INFO CheerioCrawler: Final request statistics: {"requestsFinished":0,"requestsFailed":0,"retryHistogram":[],"requestAvgFailedDurationMillis":null,"requestAvgFinishedDurationMillis":null,"requestsFinishedPerMinute":0,"requestsFailedPerMinute":0,"requestTotalDurationMillis":0,"requestsTotal":0,"crawlerRuntimeMillis":16579} 122024-06-30T00:04:17.221Z INFO CheerioCrawler: Finished! Total 0 requests: 0 succeeded, 0 failed. {"terminal":true}
(The warning about dynamicContentWaitSecs
was new, and it seems like it's still documented as a valid input parameter.) Run URL: https://console.apify.com/actors/aYG0l9s7dbB7j3gbS/runs/HPbMHZufEn5eIfskb
Then this week, all three jobs failed in precisely the same way. Run URLs: https://console.apify.com/actors/aYG0l9s7dbB7j3gbS/runs/5tafMNrXeNUswOpXo, https://console.apify.com/actors/aYG0l9s7dbB7j3gbS/runs/Fn7JwjD3OGIcj171i, https://console.apify.com/actors/aYG0l9s7dbB7j3gbS/runs/3Ee1hY3mQWxqJ2KW4
This morning (about 13 hours after the three failed runs), I manually triggered a run and it started out fine. It gave the new warning, but it continued to crawl and return results. I then re-triggered my weekly process, which fired off its three runs via the API, and they all worked fine, despite including the new warning. One example run: https://console.apify.com/actors/aYG0l9s7dbB7j3gbS/runs/8zqZHm9xzcM3b1bfT
Any idea what's going on here? In addition to the crawls not working, they return success, so my automated processes think they succeeded when they in fact failed. It's caused some embarrassment here on my end.
Hi @chrislrobert,
Thanks for reaching out and providing detailed logs. We couldn't reproduce the issue on our end, but we made some changes in the latest version (0.3.41) regarding how initial URLs are processed. Please try updating to this version.
Additionally, beware that even if all requests throw server errors, the run will still show as successful
. To determine the actual quality of the scraped data, please check the result count or the data itself.
Let us know if the issue persists or if you need further assistance! Cheers!
chrislrobert
Hi @jindrich.bar,
Hmm, okay, we are definitely checking for empty result datasets now, and will keep an eye on this. In terms of updating to the latest version, we're calling apify_client.actor("apify/website-content-crawler").call(run_input=apify_input)
from Python, without any version number in the apify_input
— so I suppose that it'll always use the latest production version by default?
Chris
- 2.8k monthly users
- 434 stars
- 99.9% runs succeeded
- 2.9 days response time
- Created in Mar 2023
- Modified 3 days ago