ব্রাউজার হিসাবে ঠিক একই ওয়েব পেজ এইচটিএমএল ডাউনলোড করতে ডাব্লুজিইটি কীভাবে পাবেন


34

একটি ওয়েব ব্রাউজার (আইই বা ক্রোম) ব্যবহার করে আমি সিটিএল-এস দিয়ে একটি ওয়েব পৃষ্ঠা (.html) সংরক্ষণ করতে পারি, এটি কোনও পাঠ্য সম্পাদক দিয়ে পরীক্ষা করতে পারি এবং টেবিল বিন্যাসে ডেটা দেখতে পারি। এই সংখ্যাগুলির মধ্যে একটি আমি নিষ্কাশন করতে চাই, তবে অনেকের জন্য, অনেক ওয়েব পৃষ্ঠাগুলি, ম্যানুয়ালি করতে খুব বেশি। সুতরাং আমি সেই ওয়েব পৃষ্ঠাগুলি একের পর এক পাওয়ার জন্য ডাব্লুজিইটি ব্যবহার করতে চাই এবং ডাব্লু। এইচটিএমএলকে বিশ্লেষণ করতে এবং আমার পছন্দ মতো নম্বরটি পুনরুদ্ধার করতে অন্য একটি প্রোগ্রাম লিখি। ব্রাউজারের মতো একই ইউআরএল ব্যবহার করার সময় ডাব্লুজিইটি দ্বারা সংরক্ষিত .html ফাইলটি ডেটা সারণী ধারণ করে না। কেন না? এটি সার্ভারটি সনাক্ত করে যে অনুরোধটি ডাব্লুজিইটি থেকে এসেছে এবং কোনও ওয়েব ব্রাউজার থেকে আসছে না এবং ডেটা টেবিলের অভাবে একটি কঙ্কাল ওয়েব পৃষ্ঠা সরবরাহ করে। ডাব্লুজিইটি-র সাথে আমি কীভাবে একই ওয়েব পৃষ্ঠা পেতে পারি? - ধন্যবাদ!

অধিক তথ্য:

আমি যে ইউআরএল আনার চেষ্টা করছি তার উদাহরণ হ'ল: http://performance.mornstar.com/fund/performance-return.action?t=ICENX®ion=usa&c لت=en-US যেখানে আইসিএনএক্স স্ট্রিংটি মিউচুয়াল ফান্ডের টিকার চিহ্ন , যা আমি বিভিন্ন টিকার চিহ্নের কয়েকটিতে পরিবর্তন করব। এটি ব্রাউজারে দেখার সময় ডেটা টেবিলটি ডাউনলোড করে তবে ডাব্লুজিইইটি-র সাথে আনলে ডেটা টেবিলটি অনুপস্থিত।


এটি কোন ইউআরএল?
ব্রায়াম

2
সম্ভবত সম্ভবত প্রাথমিক এইচটিএমএলটি একটি জাভাস্ক্রিপ্ট টুকরা দ্বারা এজেএক্স কৌশলগুলি ব্যবহার করে পূর্ণ হয়েছে যা টেবিলটি ডাউনলোড করে এবং জনপ্রিয় করে তোলে। এই ক্ষেত্রে আপনি সম্ভবত আরও ভাল ভাগ্য এই স্ক্রিপ্ট কল কল wgetting। যেমনটি ব্রিয়াম জিজ্ঞাসা করে, আপনি ইউআরএল সরবরাহ করলে আমরা এটি নির্ধারণ করতে আরও ভাল সক্ষম হতে পারি।
রোডমর

1
বিজ্ঞাপন আরও তথ্য: ব্রাউজারে, আপনি যখন একটি উত্স কোড প্রদর্শন করেন, আপনি মূল এইচটিএমএলটি দেখতে পাবেন না (উইজেটের মাধ্যমে পেয়েছিলেন একইভাবে) তবে জাভাস্ক্রিপ্ট / এজাক্স দ্বারা আপডেট হওয়া এইচটিএমএল। আধুনিক ব্রাউজারগুলি সরল এইচটিএমএলের পরিবর্তে এ জাতীয় উত্স উত্স দেখায়।
ভ্রাতা ব্লেজ

উত্তর:


39

Roadmr হিসাবে উল্লেখ করা হয়েছে, এই পৃষ্ঠার টেবিলটি জাভাস্ক্রিপ্ট দ্বারা উত্পাদিত হয়েছে। উইজেট জাভাস্ক্রিপ্ট সমর্থন করে না, এটি সার্ভার থেকে প্রাপ্ত পৃষ্ঠাটি সরিয়ে ফেলেছে (যেমন কোনও জাভাস্ক্রিপ্ট কোড চালানোর আগে) এবং তাই টেবিলটি অনুপস্থিত।

আপনার একটি শিরোনামহীন ব্রাউজার দরকার যা ফ্যান্টমজেসের মতো জাভাস্ক্রিপ্ট সমর্থন করে :

$ phantomjs save_page.js http://example.com > page.html

save_page.js সহ:

var system = require('system');
var page = require('webpage').create();

page.open(system.args[1], function()
{
    console.log(page.content);
    phantom.exit();
});

তারপরে আপনি যদি কেবল কিছু পাঠ্য উত্তোলন করতে চান তবে পৃষ্ঠায় w3m দিয়ে রেন্ডার করা সবচেয়ে সহজ হতে পারে:

$ w3m -dump page.html

এবং / অথবা ফ্যান্টমজস স্ক্রিপ্টটি আপনার আগ্রহী বিষয়টিকে স্রেফ ডাম্প করার জন্য পরিবর্তন করুন।


এটিও কাজ করে না, উদাহরণস্বরূপ cotrino.com/lifespan
mrgloom

জেএস এর সাথে লিঙ্কগুলি তৈরি করবে না
কিকিজেড

1
2018: ফ্যান্টমজেএস প্রকল্পটি পরবর্তী নির্দেশ না দেওয়া পর্যন্ত স্থগিত করা হয়েছে :(
1rq3fea324

এই সমাধানটি কেবল নির্দিষ্ট url থেকে পৃষ্ঠা ডাউনলোড করার জন্য ing আপনি কীভাবে এটিতে উইজেটের সাইট ক্রলিং মেকানিজমটি করবেন? এছাড়াও, হেডলেস ক্রোমের সাথে স্ক্রিপ্টটি কেমন হবে?
ফিলি

10

ব্যবহার করে আপনি একটি সম্পূর্ণ ওয়েবসাইট ডাউনলোড করতে পারেন wget --mirror

উদাহরণ:

wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL

উপরের কমান্ড লাইনটি যা আপনি কার্যকর করতে চান যখন আপনি একটি সম্পূর্ণ ওয়েবসাইট ডাউনলোড করতে চান এবং স্থানীয় দেখার জন্য উপলব্ধ করে তোলেন।

বিকল্প:

  • --mirror মিররিংয়ের জন্য উপযুক্ত বিকল্পগুলি চালু করে।

  • -p প্রদত্ত এইচটিএমএল পৃষ্ঠা সঠিকভাবে প্রদর্শন করতে প্রয়োজনীয় সমস্ত ফাইল ডাউনলোড করে।

  • --convert-links ডাউনলোডের পরে, স্থানীয় দেখার জন্য লিঙ্কগুলিকে নথিতে রূপান্তর করুন।

  • -P ./LOCAL-DIR সমস্ত ডিরেক্টরি এবং ডিরেক্টরি নির্দিষ্ট ডিরেক্টরিতে সংরক্ষণ করে।

সম্পর্কে Wget- এর বিকল্প আরো পড়ুন এই নিবন্ধটি আরও তথ্যের জন্য: উদাহরণ সংক্ষিপ্ত বিবরণ সব wget হয় কমান্ড সম্পর্কে , অথবা পরীক্ষা নয় Wget- এর man পৃষ্ঠা


2
এটি জাভাস্ক্রিপ্ট রেন্ডার করা সামগ্রীর সাথে কাজ করবে না। এর জন্য আপনাকে লেমনস্কুইজের জবাব অনুসারে ফ্যান্টমজ ব্যবহার করতে হবে।
ম্যাটিয়াস

1
এই সেন্টিমিডি সমস্ত উপ-url গুলির মধ্যে দিয়ে যাবে, যা প্রদত্ত ওয়েবপৃষ্ঠা রেন্ডার করার জন্য প্রয়োজনীয় সংস্থানগুলি ডাউনলোড করবে।
1rq3fea324Wre

3

এর পরিবর্তে --recursive, যা কেবলমাত্র এগিয়ে যাবে এবং আপনার ইউআরএল এর প্রতিটি লিঙ্ক "মাকড়সা" ব্যবহার করবে --page-requisites। গ্রাফিকাল ব্রাউজারগুলিতে আপনি যে বিকল্পগুলি বর্ণনা করেছেন ঠিক সেভাবে আচরণ করা উচিত।

       This option causes Wget to download all the files that are
       necessary to properly display a given HTML page.  This includes
       such things as inlined images, sounds, and referenced stylesheets.

       Ordinarily, when downloading a single HTML page, any requisite
       documents that may be needed to display it properly are not
       downloaded.  Using -r together with -l can help, but since Wget
       does not ordinarily distinguish between external and inlined
       documents, one is generally left with "leaf documents" that are
       missing their requisites.

আরও তথ্যের জন্য, করুন man wgetএবং --page-requisitesবিকল্পটি সন্ধান করুন (ম্যান পৃষ্ঠা পড়ার সময় অনুসন্ধানের জন্য "/" ব্যবহার করুন)।


2

যদি কোনও জিজ্ঞাসা উত্সের উপর নির্ভর করে সার্ভারের উত্তর পৃথক হয় তবে এটি বেশিরভাগ ক্ষেত্রে HTTP_USER_AGENT ভেরিয়েবল (কেবল একটি পাঠ্য স্ট্রিং) এর কারণে যা সার্ভারকে প্রযুক্তি সম্পর্কে অবহিত করে জিজ্ঞাসা উত্স থেকে একটি অনুরোধ সরবরাহ করা হয়।


  1. আপনি এখানে আপনার ব্রাউজার এজেন্ট চেক করতে পারেন -> http://whatsmyuseragent.com

  2. ডাব্লুজিইটি ম্যানুয়াল অনুসারে এই প্যারামিটারটি কাজ করা উচিত --user-agent=AGENT


যদি এটি সাহায্য না করে, যেমন জাভাস্ক্রিপ্ট প্রসেসিংয়ের প্রয়োজন একই ব্রাউজার হিসাবে একই পৃষ্ঠাটি পেতে প্রয়োজন হতে পারে, বা জিইটি প্যারামিটারগুলির সাথে উপযুক্ত অনুরোধ থাকতে পারে যাতে সার্ভার উত্তরটি প্রস্তুত করবে যার জন্য পৃষ্ঠাটি পূরণ করার জন্য জাভাস্ক্রিপ্টের প্রয়োজন নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.