क्या ब्राउज़र के साथ सीधे बातचीत किए बिना वेबपेज स्रोत को डंप करने का एक तरीका है?


2

क्या किसी तरह एक वेबपेज के स्रोत को अपने आप से डंप करने का एक तरीका है, बिना किसी ब्राउज़र के साथ बातचीत किए; पृष्ठ पर राइट क्लिक किए बिना और "व्यू सोर्स" चुनें। इसलिए उदाहरण के लिए, मेरे पास एक इंटरनेट एक्सप्लोरर खुला है और कुछ सामग्री प्रदर्शित कर रहा है। मैं उस पृष्ठ का HTML स्रोत उस फ़ाइल में प्राप्त करना चाहता हूं जिसे मैं पढ़ सकता था। हो सकता है कि डिस्क पर कहीं वर्तमान पृष्ठ स्रोत रखने का विकल्प हो?

कुछ बिंदु:

  1. मैं जिस वेबपेज को चला रहा हूं वह एक स्थानीय वेब सेवा है जो किओस्क मोड (कोई मेनू या पता फ़ील्ड) में खुला है।
  2. चूंकि इस सेवा को प्रमाणीकरण की आवश्यकता है, इसलिए मैं सीधे पेज को खोल नहीं सकता और सीधे एक्सेस कर सकता हूं। एक निश्चित प्रक्रिया है जो मैं इस पृष्ठ पर लाने के लिए काम करता हूं।
  3. मैं वर्तमान वास्तविक पृष्ठ का स्रोत प्राप्त करना चाहता हूं क्योंकि मैं लगातार इस पर परिवर्तन करता हूं और (मूल्यों को भरना, कॉम्बोक्स मानों को चुनना, आदि)। मैं चाहता हूं कि इन परिवर्तनों को स्रोत में परिलक्षित किया जाए, अगर मैं उसी पृष्ठ को नई विंडो में चलाता हूं, तो मेरे पास मेरे संपादित फ़ील्ड नहीं होंगे।

सेलेनियम जैसे समाधान मेरी मदद नहीं करेंगे क्योंकि मैं पहली बार में इसके माध्यम से ब्राउज़र को चलाना नहीं चाहता हूं।

जवाबों:


1

मुझे लगता है कि आप विंडोज पर हैं, लेकिन लिनक्स / मैक ओएस एक्स दुनिया में एक का उपयोग curlकर सकते हैं या wgetयदि आप किसी पृष्ठ के लक्ष्य URL को जानते हैं और इसे एक फ़ाइल में सहेजना चाहते हैं। मैं देख रहा हूँ की एक Windows संस्करण है curl यहाँ उपलब्ध है और साथ ही अन्य संस्करणों अधिकारी पर curlसाइट के साथ-साथ यदि आप कमांड लाइन के साथ सहज हैं तो हो सकता है यह आपके लिए काम करेगा?

उदाहरण के लिए, curlआप इस तरह से कमांड लाइन से मुख्य Google इंडेक्स पेज की सामग्री को बचा सकते हैं:

curl -L google.com > google_index.html

curlआदेश स्पष्ट है और -Lआदेश बताता है curlबस किसी भी रीडायरेक्ट एक टक्कर हो सकती है जब किसी URL तक पहुँचने को हल करने। google.comलक्ष्य यूआरएल है और >आदेश बताता है के उत्पादन में पुनर्निर्देशित करने के लिए curl -L google.comनामित किया गया फाइल करने के लिए google_index.html

उस आदेश को चलाने के बाद सामग्री का google_index.html100% उसी तरह होगा जैसे आप देखते हैं कि क्या आप स्रोत को वेब ब्राउज़र बनाते हैं।

लेकिन इसे ध्यान में रखें: ऐसा करने वाला सभी curlकमांड URL द्वारा लौटाए गए कच्चे माल को लाएगा। यह आपको किसी भी ग्राफिक्स, सीएसएस, जावास्क्रिप्ट या किसी अन्य सहायक सामग्री को नहीं देगा जो उस HTML से जुड़ा होगा।

पूर्ण साइट सामग्री को और अधिक जटिल और परिष्कारित wgetकरने के लिए, जाने का रास्ता है। यहाँ पर होस्ट किया गया विंडोज संस्करणwget प्रतीत होता है , लेकिन यह निश्चित नहीं है कि जीएनयू कोर संस्करण की तुलना में यह कितना पुराना हो सकता है wget। इसलिए अपने जोखिम पर प्रयास करें।


आपके उत्तर के लिए धन्यवाद। कमांड लाइन एकदम सही है, हालांकि मुझे यकीन नहीं है कि मैं आपके समाधान को लागू कर पाऊंगा। 1. मैं जो वेबपेज चला रहा हूं, वह एक स्थानीय वेब सेवा है जो किओस्क मोड (कोई मेनू या पता फ़ील्ड) में खुला है, इसलिए कोई स्पष्ट यूआरएल नहीं है जिसे मैं कॉपी कर सकता हूं। 2. चूँकि इस सेवा को प्रमाणीकरण की आवश्यकता होती है, मैं सीधे पृष्ठ को खोल या एक्सेस नहीं कर सकता, भले ही मेरे पास url हो। 3. मैं वर्तमान वास्तविक पृष्ठ का स्रोत प्राप्त करना चाहता हूं क्योंकि मैं इस पर परिवर्तन करता हूं और मैं चाहता हूं कि ये परिवर्तन स्रोत में परिलक्षित हों, यदि मैं उसी पृष्ठ को नई विंडो में चलाता हूं, तो मेरे पास मेरे संपादित फ़ील्ड नहीं होंगे
यूजीन एस

1
@EugeneS खैर, जहां तक ​​बिंदु 2.जाता है, curlकमांड लाइन से प्रमाणीकरण की अनुमति देता है, ताकि कोई बाधा न हो। लेकिन ऐसा लगता है कि आपके पास अन्य आईडी हैं जो केवल सामग्री तक पहुंचने के रास्ते में खड़े हो सकते हैं। मैं आपको अपने विवरण में उन विवरणों को जोड़ने की सलाह दूंगा ताकि कोई भ्रम न हो कि आप क्या करने का प्रयास कर रहे हैं और आपको किन साधनों की आवश्यकता हो सकती है। सौभाग्य!
जेकगॉल्ड

0

Powershell 3.0 के रूप में, आप उपयोग कर सकते हैं Invoke-WebRequest

आह्वान-WebRequest

इंटरनेट पर एक वेब पेज से सामग्री मिलती है।

विस्तृत विवरण

Invoke-WebRequest cmdlet एक वेब पेज या वेब सेवा के लिए HTTP, HTTPS, FTP, और FILE अनुरोध भेजता है। यह फॉर्म, लिंक, चित्र और अन्य महत्वपूर्ण HTML तत्वों की प्रतिक्रिया और रिटर्न संग्रह को पार्स करता है।

इस cmdlet को विंडोज पावरशेल 3.0 में पेश किया गया था।

के लिए शक्तियां उर्फ Invoke-WebRequestactuall हैwget


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

मूल प्रश्न का उत्तर देने के बाद आपकी बात केवल स्पष्ट की गई थी, यह पहले स्पष्ट नहीं थी। मैं इस प्रक्रिया को डंप करने और पूरे पृष्ठ के लिए मेमोरी को खोजने के साथ इधर-उधर खेल रहा हूं, लेकिन मैं इसे मज़बूती से स्वचालित नहीं कर सकता (पृष्ठ पर्याप्त रूप से मेमोरी में है, हालांकि) शायद बेहतर होगा यदि आप अपने प्रश्न में समझाते हैं कि आपका कार्य लक्ष्य क्या है। वर्तमान में, यह एक XY समस्या की
Kevenmaekers

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

दुर्भाग्य से, पृष्ठ स्रोत एक सन्निहित मेमोरी ब्लॉक में नहीं लगता है। मुझे लगता है कि आपका सबसे अच्छा विकल्प थोड़ा आवेदन लिखना है और स्रोत निकालने के लिए ReadProcessMemory का उपयोग करना है।
लेवेन केर्सेमेकर्स

0

मुझे लगता है आप एक खोखे, LOL में तोड़ने की कोशिश कर रहे हैं?

एक तरफ मजाक करें, आपको क्लाइंट मशीन में स्थापित करने के लिए फिडलर की आवश्यकता है। यदि HTTPS का उपयोग करना कठिन है, तो फिडलर सेर्ट्स पर भरोसा करें। आप फ़िडलर का उपयोग करते हुए अविश्वासित प्रमाण पत्र का सामना कर सकते हैं, यह कनेक्शनों को अपहृत कर देगा और सभी htpp ट्रैफ़िक को सुनेगा, डिकोड करेगा और ब्राउज़र में वापस स्ट्रीम करेगा। बहुत ज्यादा एक छद्म वास्तव में, इसका वेब विकास / डिबगिंग के लिए उपयोग किया जाता है।

यह सवाल सुपर यूजर में नहीं होना चाहिए, जो इसके वेब डेवलपमेंट से संबंधित है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.