We have a website that displays a list of Websties. For each Website we display its title, description, and screenshot.
The purpose of this project is to develop a command-line program that captures a screenshot of any Website and saves it as an image file. The program must run on Linux VPS machines.
One way for generating a screenshot of a Website programmatically on a Linux VPS machine is to use the Firefox application with Xvfb. We have already tried this approach and it works, but the downside is speed—the 2 software (especially Firefox) require a lot of memory, therefore run very slowly on a low-memory VPS machine.
We'd like to solve this problem by creating a program that can take a screenshot of any Website quickly even on a low-end server.
Given a URL and a file path, the program needs to take a screenshot of the provided URL and save an image file at the file path. The size of the screenshot has to be 1024 x 1024.
For example, from the command line the program needs to be executed as:
$ program_name “[url removed, login to view]” “./files/full/[url removed, login to view]”
The URL and file path may contain URL-encoded characters such as %82%A0.
2-2-1. Programming Language
As long as the program runs on the environment stated in Section 2-3, there is no restriction for which programming language to use.
2-2-2. Execution Speed
The program needs to generate a screenshot image file within 10 seconds on a 256MB RAM VPS machine.
When the Website contains a Flash content, however, the execution time may exceed 10 seconds in order to wait for the content to be loaded.
The program should exit as soon as generating the image file successfully.
2-2-3. Image Format
The program needs to save an image file in either PNG or JPEG format.
Only 1 format needs to be supported.
2-2-4. Character Encoding
Requested Websites may contain multi-byte characters such as Japanese.
The program needs to render Websites in any character encoding supported by common Web browsers.
2-2-4. Error Handling
When a screenshot cannot be taken, the program should terminate without generating an image file. The timeout should occur after 60 seconds.
2-2-5. Configuration (optional)
Ideally, the image size described in Section 2-2, the image format in Section 2-2-3, and the timeout setting in Section 2-2-4 need to be configurable. However, this configuration feature is optional.
2-3. System Requirement
The program needs to run on the following VPS environment.
OS: CentOS 5.5 (64-bit)
PHP: [url removed, login to view]
Other libraries or yum packages for the program can be installed if necessary.
3. Deliverable and Schedule
The program, source code, and the list of tested URLs should be turned in.
The copyright holder of the program will be 4plus Inc.
Although there is no fixed deadline for this project, please propose the shortest possible delivery period.
Please provide a cost proposal to complete this project.
The proposal should also explain which image format is supported, and what libraries or yum packages are required.
If the optional configuration feature in Section 2-2-5 can be implemented, please provide 2 proposals: one for with the feature, and the other for without the feature. Please also explain how you would implement the feature.
We intend to use this program only internally.
There are some websites, however, that allow anyone to take a screenshot of arbitrary Website by HTTP request.
For example, we can display a screenshot of xyz.com by
< img src="http: //some_screenshot_capture_website . com/?url=xyz.com&w=1024&h=1024" />
Obviously this kind of Websites have to take hundreds of thousands of screenshots as quick as possible.
In order to demonstrate your knowledge and skill, please also provide a brief note of how you would solve this problem.
Décerné à :
10 freelance ont fait une offre moyenne de 201 $ pour ce travail
Hi there, Can do it for you. Check out my reviews to evaluate me. That's it. Straight and FOrward. Thanks and Regards, ABBASITECH (IT SOLUTIONZ ISB)
We understand the real architecture of these scenario. We are expert in scripting and data management in every aspect and committed for best service out of the industry.