दिलचस्प पोस्ट
विशिष्ट प्रकार का सदस्य 'तिथि' LINQ में इकाईयों में समर्थित नहीं है। केवल प्रारंभिक, संस्था के सदस्य, और इकाई नेविगेशन गुण बफर्ड इमेज प्रत्येक रेंडरिंग से पहले साफ नहीं किया जा रहा है एंड्रॉइड काम नहीं करने के लिए दृश्य स्टूडियो (2015) एमुलेटर – XDE.exe – बाहर निकलें कोड 3 जावा ऐप में पैसे के लिए सबसे अच्छा डेटा प्रकार क्या है? पिक्सेल डेटा के एक बाइट सरणी से बिटमैप बनाएं कमांड लाइन से माइक्रोसॉफ्ट एज में यूआरएल कैसे खोलें? एक क्लाइंट पर एकाधिक SSH निजी कुंजी का उपयोग करने का सर्वोत्तम तरीका वसंत RestTemplate अनुरोध पर एक "स्वीकार करें" हेडर कैसे सेट करें? पुनरावृत्त वेक्टर, कुछ वस्तुओं को हटा दें जैसा मैं जाता हूं स्टोरीबोर्ड से कस्टम प्रोटोटाइप सेल ऊंचाई पुनर्प्राप्त करें? जीसीसी के ## __ वीए_एआरजीएस_ चाल के मानक विकल्प? एचटीएमएल 5 में, प्रति पृष्ठ / डोमेन को अलग-अलग स्थानीय स्टोरेज ऑब्जेक्ट है? एपीसी PHP 5.4 या PHP 5.5 के साथ संगत है? स्ट्रॉशस में निर्भरता इंजेक्शन प्रवेश सत्र स्कॉड बीन्स जांचें कि क्या डेटा डेटा में मौजूद है?

वेबसाइट स्क्रीनशॉट

क्या PHP में एक वेबसाइट का स्क्रीनशॉट लेने का कोई तरीका है, और फिर इसे फाइल में सहेज रहा है?

वेब के समाधान से एकत्रित समाधान "वेबसाइट स्क्रीनशॉट"

अंतिम संपादन : 7 वर्षों के बाद भी अभी भी इस जवाब को लेकर जवाब मिल रहा है, लेकिन मुझे लगता है कि यह एक और अधिक सटीक है।


यकीन है कि आप कर सकते हैं, लेकिन आपको कुछ के साथ पृष्ठ को प्रस्तुत करना होगा अगर आप वास्तव में केवल php का उपयोग करना चाहते हैं, तो मैं आपको HTMLTOPS का सुझाव देता हूं , जो पृष्ठ को प्रस्तुत करता है और इसे पीएस फ़ाइल में बना देता है (ghostscript), फिर इसे .jpg, .png, .pdf में परिवर्तित कर सकता है। जटिल पृष्ठ (और सभी सीएसएस का समर्थन न करें)

अन्यथा, आप pdf, jpg, whaterver में html पृष्ठ को आउटपुट करने के लिए wkhtmltopdf का उपयोग कर सकते हैं .. CSS2.0 स्वीकार करें, पृष्ठ को प्रस्तुत करने के लिए वेबकिट (सफारी के आवरण) का उपयोग करें .. तो ठीक होना चाहिए। आपको इसे अपने सर्वर पर भी स्थापित करना होगा, साथ ही साथ ..

अब अद्यतन करें, नए एचटीएमएल 5 और जेएस फीचर के साथ, जावास्क्रिप्ट का उपयोग कर पेज कैनवास ऑब्जेक्ट में भी प्रस्तुत करना संभव है। यहां एक अच्छी लाइब्रेरी है कि: Html2Canvas और यहां G + जैसे फीडबैक प्राप्त करने के लिए एक ही लेखक द्वारा एक कार्यान्वयन है एक बार जब आप कैनवास में डोम को गाया है, तो आप एजेक्स के माध्यम से सर्वर पर भेज सकते हैं और इसे जेपीजी के रूप में सहेज सकते हैं।

संपादित करें : आप पीडीएफ को पीएनजी में परिवर्तित करने के लिए छवि मैजिक उपकरण का उपयोग कर सकते हैं। Wkhtmltopdf का मेरा संस्करण छवियों का समर्थन नहीं करता। उदा convert html.pdf -append html.png

संपादित करें : यह छोटी सी खोल स्क्रिप्ट लिफाक्स पर PHP / 5 के साथ एक सरल / परन्तु काम के उपयोग के उदाहरण देता है और उपर्युक्त उपकरण।

संपादित करें : मैंने अभी देखा है कि wkhtmltopdf टीम किसी अन्य प्रोजेक्ट पर काम कर रही है: wkhtmltoimage, जो आपको सीधे जीपीपी देता है

चूंकि PHP 5.2.2 यह संभव है, PHP के साथ वेबसाइट पूरी तरह से कैप्चर करने के लिए !

imagegrabscreen – पूरी स्क्रीन को कैप्चर करता है

 <?php $img = imagegrabscreen(); imagepng($img, 'screenshot.png'); ?> 

imagegrabwindow – खिड़की संचालन (COM उदाहरण में HWND संपत्ति) का उपयोग कर खिड़की या उसके क्लाइंट क्षेत्र को पकड़ लेता है

 <?php $Browser = new COM('InternetExplorer.Application'); $Browserhandle = $Browser->HWND; $Browser->Visible = true; $Browser->Fullscreen = true; $Browser->Navigate('http://www.stackoverflow.com'); while($Browser->Busy){ com_message_pump(4000); } $img = imagegrabwindow($Browserhandle, 0); $Browser->Quit(); imagepng($img, 'screenshot.png'); ?> 

संपादित करें: ध्यान दें, ये फ़ंक्शन केवल Windows सिस्टम पर उपलब्ध हैं!

यदि आप किसी भी तीसरे पक्ष के उपकरण का उपयोग नहीं करना चाहते हैं, तो मैं एक साधारण समाधान में आया हूं जो Google पृष्ठ इनसाइट एपीआई का उपयोग कर रहा है।

सिर्फ पैरामीटर screenshot=true साथ इसे एपीआई कहने की जरूरत screenshot=true

 https://www.googleapis.com/pagespeedonline/v1/runPagespeed? url=www.stackoverflow.com/&key={your_api_key}&screenshot=true 

मोबाइल साइट दृश्य पास &strategy=mobile के लिए पैराम्स में,

 https://www.googleapis.com/pagespeedonline/v1/runPagespeed? url=www.stackoverflow.com/&key={your_api_key}&screenshot=true&strategy=mobile 

डेमो

आप पृष्ठ को प्राप्त करने के लिए सरल हेडलेस ब्राउज़र का इस्तेमाल कर सकते हैं जैसे फ़ैंटमजेएस।

इसके अलावा आप PHP के साथ PhantomJS का उपयोग कर सकते हैं

यह छोटी php स्क्रिप्ट देखें जो यह करें। यहाँ एक नज़र डालें https://github.com/microweber/screen

और यहां एपीआई है- http://screen.microweber.com/shot.php?url=https://stackoverflow.com/questions/757675/website-screenshots-using-php

यह आपके लिए अच्छा होना चाहिए:

http://code.google.com/p/wkhtmltopdf/

सुनिश्चित करें कि आप wkhtmltoimage वितरण डाउनलोड करें!

यह अजगर में है, लेकिन प्रलेखन और कोड पर जाकर आप देख सकते हैं कि यह कैसे किया जाता है। यदि आप अजगर चला सकते हैं, तो यह आपके लिए एक तैयार समाधान है:

http://browsershots.org/

ध्यान दें कि एक मशीन पर एक मशीन पर हर चीज चला सकती है, या अन्य प्लेटफार्मों पर चलने वाले वर्चुअल मशीन के साथ एक मशीन।

नि: शुल्क, खुले स्रोत, दस्तावेज, स्रोत कोड, और अन्य जानकारी के लिंक के लिए पृष्ठ के नीचे स्क्रॉल करें।

हाँ। आपको कुछ चीजों की आवश्यकता होगी:

* Nx पर khtmld (aemon) देखें Windows के लिए Url2Jpg देखें लेकिन चूंकि यह डॉटनेट ऐप है, आपको Url2Bmp को भी चेक करना चाहिए

दोनों कंसोल उपकरण हैं जो स्क्रीनशॉट प्राप्त करने के लिए आप अपने वेब ऐप से उपयोग कर सकते हैं।

ऐसी वेब सेवाएं भी हैं जो इसे पेश करती हैं उदाहरण के लिए इसे बाहर की जाँच करें ।

संपादित करें:

यह लिंक उपयोगी है

हाँ यही है। यदि आपको केवल यूआरएल की जरूरत है तो यह कोशिश करें

 <img src='http://zenithwebtechnologies.com.au/thumbnail.php?url=www.subway.com.au'> 

Url को तर्क के रूप में पास करें और आपको अधिक विवरण के लिए चित्र मिलेगा इस लिंक को देखें http://zenithwebtechnologies.com.au/auto-thumbnail-generation-from-url.html

cutycapt अधिकांश छवि प्रारूपों (जेपीजी, पीएनजी ..) को वेबपेजों को बचाता है, इसे आपके सिंकैप्टिक से डाउनलोड करता है, यह wkhtmltopdf से बेहतर काम करता है

मैं हमेशा किसी भी वेबपेज के स्क्रीनशॉट पर कब्जा करने के लिए माइक्रो-ओबेर स्क्रीन का उपयोग करता हूं यहाँ हम एक अच्छी तरह से लिखा ट्यूटोरियल पा सकते हैं। यह आसान है और जानने के लिए 3 मिनट से अधिक नहीं लेना चाहिए।

खैर, फांटोमजेएस एक ब्राउज़र है जिसे आसानी से एक सर्वर पर रखा जा सकता है और इसे पीएचपी में एकीकृत कर सकता है। आप WDudes में कोड पा सकते हैं। उन्होंने छवि आकार, कैश, फाइल के रूप में डाउनलोड करने या आईएमजीआर इत्यादि में प्रदर्शित करने जैसे कई विशेषताओं को शामिल किया है।

 <img src=”screenshot.php?url=google.com” /> 

यूआरएल पैरामीटर

  • चौड़ाई और ऊँचाई: screenshot.php? Url = google.com और w = 1000 और h = 800

  • फसल के साथ: screenshot.php? Url = google.com और w = 1000 और h = 800 और क्लिपवाई = 800 और क्लिपह = 600

  • कैश को अक्षम करें और ताज़ा स्क्रिशशॉट लोड करें:
    screenshot.php? url = google.com और कैश = 0

  • छवि डाउनलोड करने के लिए: screenshot.php? Url = google.com और डाउनलोड = सच

आप यहां ट्यूटोरियल देख सकते हैं: एपीआई के बिना PHP का उपयोग कर वेबसाइट पर कब्जा स्क्रीनशॉट

मैं बॉक्सेओरा द्वारा प्रस्तावित के रूप में माइक्रोवेइबर / स्क्रीन का उपयोग कर अंत में सेट अप कर रहा हूं
शुरूआत में जब मैंने यहाँ बताया है कि मुझे क्या मिला है:

 Please download this script from here https://github.com/microweber/screen 

मैं लिनक्स पर हूं इसलिए यदि आप इसे चलाने के लिए चाहते हैं, तो आप अपने पर्यावरण का पालन करने के लिए अपना कदम समायोजित कर सकते हैं।
यहां DOCUMENT_ROOT फ़ोल्डर पर मेरे खोल पर किए गए चरण हैं:

 $ sudo wget https://github.com/microweber/screen/archive/master.zip $ sudo unzip master.zip $ sudo mv screen-master screen $ sudo chmod +x screen/bin/phantomjs $ sudo yum install fontconfig $ sudo yum install freetype* $ cd screen $ sudo curl -sS https://getcomposer.org/installer | php $ sudo php composer.phar update $ cd .. $ sudo chown -R apache screen $ sudo chgrp -R www screen $ sudo service httpd restart 

अपने ब्राउज़र को screen/demo/shot.php?url=google.com इंगित करें। जब आप स्क्रीनशॉट देखते हैं, तो आप कर चुके हैं। अधिक अग्रिम सेटिंग के लिए चर्चा यहां और यहां उपलब्ध है

स्क्रीनशॉट उत्पन्न करने वाले कई खुले स्रोत परियोजनाएं हैं। उदाहरण के लिए फँटमोज एस, वेबकिट 2 पीजीएन आदि

इन परियोजनाओं के साथ बड़ी समस्या यह है कि वे पुराने ब्राउज़र तकनीक पर आधारित हैं और पिछले कुछ महीनों / वर्षों में एचटीएमएल 5 और सीएसएस स्पेक के लिए वेबफॉन्ट, फ्लेक्सबॉक्स, एसवीजी और विभिन्न अन्य परिवर्धनों का उपयोग करते हुए कई साइटों, विशेष रूप से साइटें प्रस्तुत करने में समस्याएं हैं।

मैंने तीसरी पार्टी सेवाओं में से कुछ की कोशिश की है, और सबसे अधिक PhantomJS पर आधारित हैं, जिसका अर्थ है कि वे भी खराब गुणवत्ता वाले स्क्रीनशॉट का उत्पादन करते हैं। वेबसाइट स्क्रीनशॉट बनाने के लिए सबसे अच्छी तृतीय पक्ष सेवा urlbox.io है यह एक सशुल्क सेवा है, हालांकि किसी भी पेड प्लान के बिना इसे परीक्षण करने के लिए एक नि: शुल्क 7 दिवसीय परीक्षण है।

यहां दस्तावेज़ीकरण के लिए एक लिंक है , और नीचे यह PHP में कम्पोज़र के साथ काम करने के लिए सरल कदम है।

 // 1 . Get the urlbox/screenshots composer package (on command line): composer require urlbox/screenshots // 2. Set up the composer package with Urlbox API credentials: $urlbox = UrlboxRenderer::fromCredentials('API_KEY', 'API_SECRET'); // 3. Set your options (all options such as full page/full height screenshots, retina resolution, viewport dimensions, thumbnail width etc can be set here. See the docs for more.) $options['url'] = 'example.com'; // 4. Generate the Urlbox url $urlboxUrl = $urlbox->generateUrl($options); // $urlboxUrl is now 'https://api.urlbox.io/v1/API_KEY/TOKEN/png?url=example.com' // 5. Now stick it in an img tag, when the image is loaded in browser, the API call to urlbox will be triggered and a nice PNG screenshot will be generated! <img src="$urlboxUrl" /> 

उदाहरण के लिए यहां इस पृष्ठ का एक पूर्ण ऊँचाई स्क्रीनशॉट है:

https://api.urlbox.io/v1/ca482d7e-9417-4569-90fe-80f7c5e1c781/8f1666d1f4195b1cb84ffa5f992ee18992a2b35e/png?url=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F757675%2Fwebsite-screenshots-using-php% 2F43652083% +२३४३६५२०८३ और full_page = true

पूर्ण पृष्ठ का स्क्रीनशॉट stackoverflow.com urlbox.io द्वारा संचालित प्रश्न

मैं विंडोज पर हूं इसलिए मैं कदमान से यहां टिप को पढ़ने के बाद imagegrabwindow समारोह का उपयोग करने में सक्षम था। मैंने फसल में जोड़ा (ब्राउज़र हैडर, स्क्रॉल सलाखों, आदि से छुटकारा पाने के लिए) और अंतिम छवि प्राप्त करने के लिए आकार बदल दिया। यहाँ मेरा कोड है उम्मीद है कि किसी को मदद करता है

वेबकिट 2 एचटीएमएल मैक ओएस एक्स और लिनक्स पर काम करता है, यह स्थापित करना और उपयोग करना काफी आसान है। यह ट्यूटोरियल देखें।

विंडोज के लिए, आप क्यूटीकैप के साथ जा सकते हैं, जिसकी समान कार्यक्षमता है

मैंने ब्लुगा का इस्तेमाल किया एपीआई आपको भुगतान के बिना महीने में 100 स्नैपशॉट लेने की अनुमति देता है, लेकिन कभी-कभी यह एक ही पृष्ठ के लिए 1 से अधिक क्रेडिट का उपयोग करता है। मैंने बस Drupal मॉड्यूल, Bluga WebThumbs को ड्रापल 7 में अपग्रेड करना समाप्त कर दिया है जो आपको एक टेम्पलेट या इनपुट फिल्टर में एक थंबनेल प्रिंट करने की अनुमति देता है।

इस एपीआई का उपयोग करने के लिए मुख्य लाभ यह है कि यह आपको ब्राउज़र आयाम निर्दिष्ट करने की अनुमति देता है, यदि आप अनुकूली सीएसएस का उपयोग करते हैं, तो मैं इसे मोबाइल और टैबलेट लेआउट के लिए रीडरिंग के साथ-साथ नियमित रूप से एक का उपयोग कर रहा हूं।

निम्नलिखित भाषाओं के लिए एपीआई क्लाइंट हैं:

PHP , पायथन , रूबी , जावा , .NET C # , पर्ल और बैश (खोल स्क्रिप्ट लग रहा है जैसे इसे perl की आवश्यकता है)

यह सब इस पर निर्भर करता है कि आप स्क्रीनशॉट कैसे लेना चाहते हैं।

आप ऐसा कर सकते हैं PHP के माध्यम से, आप के लिए छवि प्राप्त करने के लिए एक webservice का उपयोग कर

grabz.it के पास सिर्फ यह करने के लिए एक webservice है, यहां एक लेख है जो सेवा का उपयोग करने का एक सरल उदाहरण दिखा रहा है।

http://www.phpbuilder.com/articles/news-reviews/miscellaneous/capture-screenshots-in-php-with-grabzit-120524022959.html

प्रत्यक्ष नहीं। सेलेनियम जैसे सॉफ्टवेयर में इस तरह की विशेषताएं हैं और इसे PHP द्वारा नियंत्रित किया जा सकता है लेकिन अन्य निर्भरताएं हैं (जैसे कि कंप्यूटर पर अपने जावा-आधारित सर्वर को चलाने वाला ब्राउज़र जिसे आप स्क्रीनशॉट करना चाहते हैं)

मैं पृष्ठ 2 महीने का इस्तेमाल किया यह cutycapt पर आधार विकसित किया गया है जो वास्तव में तेज और स्थिर है यदि आप प्रदर्शन और कॉन्फ़िगरेशन पर बहुत अधिक समय व्यतीत नहीं करना चाहते हैं, तो आपको उसका उपयोग करना चाहिए यदि आप अपनी वेबसाइट पर जाते हैं, तो आप अधिक विवरण और नमूना PHP कोड पा सकते हैं।

आप cutycapt का उपयोग कर सकते हैं

kwhtml को नापसंद किया गया है और पुराने ब्राउज़र की तरह पृष्ठ दिखाएं।

आप https://grabz.it समाधान का उपयोग कर सकते हैं।

यह एक PHP एपीआई है जो बहुत लचीला है और इसे क्रोन जॉब या PHP वेब पेज से अलग-अलग तरीके से कहा जा सकता है।

इसे लागू करने के लिए आपको पहले एप कुंजी और गुप्त प्राप्त करने और (मुक्त) एसडीके डाउनलोड करने की आवश्यकता होगी।

और कार्यान्वयन के लिए एक उदाहरण, सबसे पहले सभी प्रारंभिकरण:

 include("GrabzItClient.class.php"); // Create the GrabzItClient class // Replace "APPLICATION KEY", "APPLICATION SECRET" with the values from your account! $grabzIt = new GrabzItClient("Sign in to view your Application Key", "Sign in to view your Application Secret"); 

और स्क्रीनशॉट उदाहरण:

 // To take a image screenshot $grabzIt->URLToImage("http://www.google.com"); // Or to take a PDF screenshot $grabzIt->URLToPDF("http://www.google.com"); // Or to convert online videos into animated GIF's $grabzIt->URLToAnimation("http://www.example.com/video.avi"); // Or to capture table(s) $grabzIt->URLToTable("http://www.google.com"); 

अगले बचत है। आप दो सहेजने के तरीकों में से एक का उपयोग कर सकते हैं, यदि सार्वजनिक रूप से पहुंच योग्य कॉलबैक हैंडल उपलब्ध है और SaveTo नहीं तो Save । विवरण के लिए दस्तावेज की जांच करें