কম্পিউটার

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

এটা সুপরিচিত যে ওয়ার্ল্ড ওয়াইড ওয়েবে বিশাল দরকারী ডেটা রয়েছে। যাইহোক, কোন ধরণের বিশ্লেষণ করার আগে আমাদের মাইক্রোসফ্ট এক্সেলে ডেটা আমদানি করতে হবে। এই ধরনের কাজটি সম্পূর্ণ করার জন্য আপনি দুটি পদ্ধতি ব্যবহার করতে পারেন।

ওয়েব থেকে ম্যানুয়ালি বাহ্যিক ডেটা পান

ধরুন আপনি এই ওয়েব পৃষ্ঠা থেকে শীর্ষ অর্থ উপার্জনকারী চলচ্চিত্রগুলি সম্পর্কে আয় ডাউনলোড করতে চান, এখানে আপনাকে দেখায় কিভাবে এটি সহজে করা যায়৷

Microsoft Excel খুলুন এবং ডেটা-এ ক্লিক করুন ট্যাবে, বহিরাগত ডেটা পান গ্রুপ, ওয়েব থেকে ক্লিক করুন . নতুন ওয়েব ক্যোয়ারী এর পরে ডায়ালগ বক্স প্রদর্শিত হয়, ওয়েব ঠিকানাটি অনুলিপি করুন (https://www.the-numbers.com/movie/records/All-Time-Worldwide-Box-Office) ঠিকানায় ক্ষেত্র এবং যাও এ ক্লিক করুন বোতাম চিত্র 1.1-এ দেখানো হিসাবে এক্সেল ওয়েব পৃষ্ঠা ডাউনলোড করতে শুরু করবে। শুধু না এ ক্লিক করুন যদি আপনি একটি স্ক্রিপ্ট ত্রুটি পাবেন সতর্কতা বাক্স যা নীচের চিত্রের অনুরূপ। বাক্সটি অদৃশ্য হয়ে যাবে এবং এটি আপনার আমদানি প্রক্রিয়ার উপর কোন প্রভাব ফেলবে না৷

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 1.1

New Web Query ডায়ালগ বক্সের উপরের ডানদিকে হলুদ বাক্সে একটি তীর রয়েছে। এটিতে ক্লিক করে, আপনি টেবিলের আগে অনুরূপ আইকন দেখাবেন কিনা তা নির্ধারণ করতে পারেন। উদাহরণস্বরূপ, চিত্র 1.2 এর বাম প্যানেলে টেবিলের পাশে কোনো তীরচিহ্ন নেই। এবং আপনি আইকনগুলি দেখানোর জন্য তীর বোতামে ক্লিক করার পরে একটি আইকন (ডান প্যানেলে) থাকবে৷

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 1.2 [সম্পূর্ণ ভিউ পেতে ছবিতে ক্লিক করুন]

আপনি যে টেবিলগুলি নির্বাচন করতে চান তার পাশের তীর আইকনে ক্লিক করুন। আইকন এবং টেবিল পরিবর্তন হবে এবং চিত্র 1.3 এর বাম প্যানেলে দেখানো মতই। আপনি আমদানিতে ক্লিক করার পরে; একটি ডাটা আমদানি করুন ডায়ালগ বক্স বলা হবে। পরিসরটি পূরণ করুন (আমাদের ক্ষেত্রে কলাম A থেকে কলাম H পর্যন্ত) যেখানে আপনি ডেটা রাখতে চান এবং ঠিক আছে এ ক্লিক করুন . কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 1.3 [সম্পূর্ণ ভিউ পেতে ছবিতে ক্লিক করুন]

আপনি ঠিক আছে এ ক্লিক করার পরে ডেটা Excel এ আমদানি করা হবে৷ . আপনি যদি টেবিলের মধ্যে যে কোনো ঘরে ডান-ক্লিক করেন এবং রিফ্রেশ নির্বাচন করেন , Excel বেরিয়ে যাবে এবং একটি ওয়েব পৃষ্ঠা থেকে সাম্প্রতিকতম ডেটা বের করবে। কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 1.4

এবং এমনকি আপনি যে কোনো ফ্যাশনে রিফ্রেশ করার জন্য আপনার ক্যোয়ারী ডেটা সেট করতে পারেন। টেবিলের মধ্যে যেকোনো কক্ষে ডান-ক্লিক করুন, ডেটা রেঞ্জ বৈশিষ্ট্য নির্বাচন করুন . প্রম্পট করা বহিরাগত ডেটা রেঞ্জ বৈশিষ্ট্যগুলি ডায়ালগ বক্স, আপনি রিফ্রেশ কন্ট্রোল পরিবর্তন করতে পারেন স্টাইল পরিবর্তন করার জন্য সেটিংস। উদাহরণস্বরূপ, আপনি প্রতি 60 মিনিটে বা ফাইলটি খোলার সময় রিফ্রেশ করার জন্য ক্যোয়ারী নির্দিষ্ট করতে পারেন৷

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

VBA প্রোগ্রামিং ব্যবহার করে ডেটা স্ক্র্যাপ করুন

VBA প্রোগ্রামিং একটি ওয়েব পৃষ্ঠা থেকে ডেটা স্ক্র্যাপ করতে ব্যবহার করা যেতে পারে। প্রথম পদ্ধতির সাথে তুলনা করার সময় এটি কঠিন হলেও এটি অনেক বেশি কার্যকর। তাছাড়া, ভিবিএ প্রোগ্রামিং ব্যবহার করে কীভাবে ডেটা স্ক্র্যাপ করতে হয় তা শেখার আগে আপনাকে HTML কী তা বুঝতে হবে। আমি আপনাকে এই ওয়েবসাইট থেকে HTML এর প্রাথমিক জ্ঞান শেখার পরামর্শ দিচ্ছি যদি আপনি HTML সম্পর্কে কিছু না জানেন এবং এখান থেকে, আপনি VBA ব্যবহার করে ওয়েব স্ক্র্যাপিং সম্পর্কিত প্রায় সবকিছু শিখতে পারেন। এই নিবন্ধটি আপনাকে শুধুমাত্র দুটি উদাহরণ দেখাবে৷

একটি ওয়েব পৃষ্ঠা থেকে ডেটা স্ক্র্যাপ করুন

ধরুন আমরা এই ওয়েব পৃষ্ঠা থেকে কোম্পানির নাম, ইমেল ঠিকানা এবং যোগাযোগের নাম বের করতে চাই। আপনি এই ওয়েব পৃষ্ঠাটি খুললে, আপনি দেখতে পাবেন যে নীচে একটি যোগাযোগ ব্লক রয়েছে। চিত্র 2.1 কন্টাক্ট ব্লক এবং সংশ্লিষ্ট সোর্স কোড দেখায়। লাল বাক্সে তথ্য যা আমাদের প্রয়োজন। এবং সবুজ আন্ডারলাইন সহ আমাদের যা এক্সট্র্যাক্ট করতে হবে।

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 2.1

নিম্নলিখিত কোডটি আপনাকে উপরের অনুরোধকৃত তথ্য বের করতে এবং প্রথম ওয়ার্কশীটে রাখতে সাহায্য করতে পারে।

সোর্স কোড কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?
Sub Retrieve_Click()
 
'Create InternetExplorer

Set IE = CreateObject("InternetExplorer.Application")
 
'Let's not see the browser window

IE.Visible = False
 
'Open the web page

IE.Navigate "https://www.austrade.gov.au/SupplierDetails.aspx?ORGID=ORG8160044431&folderid=1736"
 
'Wait while IE is loading

Do While IE.readyState <> 4 Or IE.Busy = True
 
DoEvents
 
Loop
 
'Retrieve company name, email address & contact information

Set contactobj = IE.document.getElementsByClassName("contact-details block dark")
 
htext = contactobj(0).innerHTML
 
MsgBox htext
 
If InStr(htext, "<p>Company Name: ") Then
 
ThisWorkbook.Worksheets(1).Cells(1, 1) = Split(Split(htext, "<p>Company Name: ")(1), "<br")(0)
 
End If
 
If InStr(htext, "mailto:") Then
 
ThisWorkbook.Worksheets(1).Cells(2, 1) = Split(Split(htext, "mailto:")(1), Chr(34) & ">")(0)
 
End If
 
If InStr(htext, "<p>Name: ") Then
 
ThisWorkbook.Worksheets(1).Cells(3, 1) = Split(Split(htext, "<p>Name: ")(1), "<br")(0)
 
End If
 
ThisWorkbook.Worksheets(1).Cells(4, 1) = IE.LocationURL
 
ThisWorkbook.Save
 
Set IE = Nothing
 
Set contactobj = Nothing
 
End Sub

“IE.document.getElementsByClassName(“contact-details block dark”)” আপনাকে ক্লাস নাম সহ সমস্ত উপাদান পেতে সক্ষম করতে পারে – কন্টাক্ট-ডিটেইলস ব্লক ডার্ক। এই ওয়েব পৃষ্ঠাটি প্রায় সমস্ত বৈশিষ্ট্য এবং পদ্ধতিগুলি তালিকাভুক্ত করে যা HTML উপাদানগুলিতে ব্যবহার করা যেতে পারে। আপনি আপনার নিজের সমস্যার জন্য উপযুক্ত একটি চয়ন করতে পারেন৷

অভ্যন্তরীণ এইচটিএমএল বৈশিষ্ট্য আপনাকে একটি এইচটিএমএল উপাদানের বিষয়বস্তু সেট বা ফেরত দেওয়ার অনুমতি দেয়। আমাদের ক্ষেত্রে, এটি উপাদানটির বিষয়বস্তুকে ক্লাস নাম দিয়ে ফেরত দেয় “contact-details block dark “ এবং একটি পরিবর্তনশীল htext এ সেট করে। বিষয়বস্তু (চিত্র 2.2) 'Msgbox htext' দ্বারা প্রম্পট করা যেতে পারে।

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 2.2

আপনি দেখতে পারেন যে পাঠ্যটি সুগঠিত। সেজন্য আমরা যা প্রয়োজন তা বের করতে SPLIT ফাংশন ব্যবহার করতে পারি। উদাহরণস্বরূপ, যদি আমরা "

কোম্পানীর নাম:" একটি বিভাজন হিসাবে নিই এবং সূত্র হিসাবে "Split(htext, "

কোম্পানীর নাম:")(1)" "

কোম্পানীর নাম:এর পরে পুরো পাঠ্য ফেরত দিতে পারে:” এই নতুন প্রত্যাবর্তিত পাঠ্যের জন্য, আমরা "

আপনি চিত্র 2.2-এ ওকে ক্লিক করার পরে, অনুরোধ করা ডেটা ওয়েব থেকে এক্সেল ওয়ার্কশীটে আমদানি করা যেতে পারে। উদাহরণস্বরূপ, সেল A1-এ কোম্পানির নাম থাকে যখন সেল A4-এ কোম্পানির ওয়েব পৃষ্ঠার ঠিকানা থাকে।

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 2.3

আপনি ওয়ার্কবুক সংরক্ষণ করার আগে নীচের কোড যোগ করে, আপনি সেল A4 এ একটি হাইপারলিঙ্ক যোগ করতে পারেন।

সোর্স কোড কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?
'Add hyperlink

ThisWorkbook.Worksheets(1).Hyperlinks.Add ThisWorkbook.Worksheets(1).Cells(4, 1), ThisWorkbook.Worksheets(1).Cells(4, 1)

আপনি সেল A4 এ ক্লিক করলে, আপনি ওয়েব পৃষ্ঠাটি পুনরায় দেখতে পারেন। এটি দরকারী বিশেষত যখন আপনাকে অনেক কোম্পানির জন্য ডেটা পুনরুদ্ধার করতে হবে। যেহেতু আপনি সংশ্লিষ্ট ওয়েব পৃষ্ঠাটি পুনরায় দেখার জন্য যেকোনো হাইপারলিঙ্কে ক্লিক করতে পারেন এবং পরবর্তী পর্যালোচনার সময় ম্যানুয়ালি যেকোনো তথ্য যোগ বা আপডেট করতে পারেন।

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 2.4

একই রকম পড়া

  • কিভাবে অন্য ওয়ার্কবুক খুলবেন এবং এক্সেল VBA দিয়ে ডেটা কপি করবেন
  • [স্থির!] পদ্ধতি অবজেক্ট ওয়ার্কবুক খোলা ব্যর্থ (4 সমাধান)
  • সেলের মান সহ অ্যারেকে পপুলেট করতে এক্সেল VBA (4টি উপযুক্ত উদাহরণ)
  • কিভাবে ওয়ার্কবুক খুলবেন এবং VBA ব্যবহার করে ম্যাক্রো চালাবেন (4টি উদাহরণ)

ওয়েব পৃষ্ঠাগুলির সাথে ইন্টারঅ্যাক্ট করুন

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

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 3.1 [সম্পূর্ণ ভিউ পেতে ছবিতে ক্লিক করুন]

ঠিক আছে, মূল বিষয় হল VBA কিভাবে ওয়েব পেজের সাথে ইন্টারঅ্যাক্ট করতে হয় যেমন আমরা ম্যানুয়ালি করি। একটি উদাহরণ হিসাবে S.W.I.S অ্যাডভান্টেজ নেওয়া যাক। সাধারণত, আমরা আশা করি যে এক্সেল এগ্রিবিজনেস (চিত্র 3.1 এর শীর্ষ প্যানেল) এ ক্লিক করতে পারে এবং এইভাবে আমাদের দ্বিতীয় ওয়েব পৃষ্ঠায় নিয়ে যাওয়ার জন্য IE ট্রিগার করে। দ্বিতীয় ওয়েব পৃষ্ঠায় (চিত্র 3.1 এর নীচের প্যানেল), এক্সেল S.W.I.S Advantage-এ ক্লিক করতে পারে এবং তারপর IE চিত্র 2.1-এ দেখানো পৃষ্ঠায় আমাদের নির্দেশ দেয় যাতে আমরা S.W.I.S অ্যাডভান্টেজের যোগাযোগের তথ্য পুনরুদ্ধার করতে পারি।

ভিজ্যুয়াল বেসিক এডিটরে নিম্নলিখিত কোডটি প্রবেশ করান এবং কোডটি জমা দেওয়ার পরে, আপনি দেখতে পাবেন যে আপনার IE খোলা হয়েছে। প্রথম ওয়েব পৃষ্ঠাটি দ্বিতীয় ওয়েব পেজ দ্বারা অনুসরণ করা হয়। এখানে আপনি শিখবেন কীভাবে ড্রপ-ডাউন তালিকা উপাদান পেতে হয়, একটি বিকল্প নির্বাচন করতে হয় এবং আপনি বিকল্পটি নির্বাচন করার পরে একটি ইভেন্ট ট্রিগার করতে হয়। “m =IE.document.getElementsByTagName(“option”).দৈর্ঘ্য – 1” আপনাকে মোট বিকল্পের সংখ্যা দেবে। এটি পরবর্তী লুপের জন্য ব্যবহার করা যেতে পারে।

সোর্স কোড কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?
Sub retrieve()
 
'Create InternetExplorer

Set IE = CreateObject("InternetExplorer.Application")
 
'Let's see the browser window

IE.Visible = True
 
'Open the web page

IE.Navigate "https://www.austrade.gov.au/international/buy#"
 
'Wait while IE is loading

Do While IE.Busy
 
Application.Wait DateAdd("s", 1, Now)
 
Loop
 
Application.Wait (Now + TimeValue("00:00:10"))
 
'Part 1 - Select dropdown list and trigger event after you select one option

Set selectobj = IE.document.getElementsByTagName("select")
 
m = IE.document.getElementsByTagName("option").Length - 1
 
selectobj(0).selectedIndex = 1
 
selectobj(0).FireEvent ("onchange")
 
'Wait while IE is loading

Do While IE.readyState <> 4 Or IE.Busy = True
 
Application.Wait DateAdd("s", 1, Now)
 
Loop
 
Application.Wait (Now + TimeValue("00:00:10"))
 
End Sub

কোডের এই অংশটি আপনাকে এক্সেল প্রথম নামে ক্লিক করার পরে চিত্র 2.1-এ দেখানো ওয়েব পৃষ্ঠায় নির্দেশ দিতে পারে। সমস্ত কোম্পানির নাম "নাম" এর শ্রেণীর নামের সাথে উপাদানটিতে অন্তর্ভুক্ত করা হয়েছে। Searchobj হল একটি সংগ্রহ এবং searchobj(i) (i+1) th ফেরত দিতে পারে বস্তু উদাহরণস্বরূপ, searchobj(1) ক্লিক করলে আপনি RIDLEY CORPORATION (Melbourne) এর ওয়েব পৃষ্ঠা দেখতে পারবেন।

সোর্স কোড কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?
'Part 2 - Select company Name

Set searchobj = IE.document.getElementsByClassName("Name")
 
searchobj(0).Click
 
'Wait while IE is loading

Do While IE.readyState <> 4 Or IE.Busy = True
 
DoEvents
 
Loop

অবশেষে, এখানে পুরো কোডটি রয়েছে যা আপনাকে IE খোলার, ওয়েব পেজ ব্রাউজ করা এবং ডেটা বের করার প্রক্রিয়া দেখাতে পারে। নিষ্কাশিত ডেটা চিত্র 2.4 এর মতই হবে।

সোর্স কোড কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?
Sub Retrieve()
 
'Create InternetExplorer

Set IE = CreateObject("InternetExplorer.Application")
 
'Let's see the browser window

IE.Visible = True
 
'Open the web page

IE.Navigate "https://www.austrade.gov.au/international/buy#"
 
'Wait while IE is loading

Do While IE.Busy
 
Application.Wait DateAdd("s", 1, Now)
 
Loop
 
Application.Wait (Now + TimeValue("00:00:10"))
 
'Part 1 - Select dropdown list and trigger event after you select one option

Set selectobj = IE.document.getElementsByTagName("select")
 
m = IE.document.getElementsByTagName("option").Length - 1
 
selectobj(0).selectedIndex = 1
 
selectobj(0).FireEvent ("onchange")
 
'Wait while IE is loading

Do While IE.readyState <> 4 Or IE.Busy = True
 
Application.Wait DateAdd("s", 1, Now)
 
Loop
 
Application.Wait (Now + TimeValue("00:00:10"))
 
'Part 2 - Select company Name

Set searchobj = IE.document.getElementsByClassName("Name")
 
searchobj(0).Click
 
'Wait while IE is loading

Do While IE.readyState <> 4 Or IE.Busy = True
 
DoEvents
 
Loop
 
'Part 3 - Retrieve company name, email address & contact information

Set contactobj = IE.document.getElementsByClassName("contact-details block dark")
 
htext = contactobj(0).innerHTML
 
If InStr(htext, "<p>Company Name: ") Then
 
ThisWorkbook.Worksheets(1).Cells(1, 1) = Split(Split(htext, "<p>Company Name: ")(1), "<br")(0)
 
End If
 
If InStr(htext, "mailto:") Then
 
ThisWorkbook.Worksheets(1).Cells(2, 1) = Split(Split(htext, "mailto:")(1), Chr(34) & ">")(0)
 
End If
 
If InStr(htext, "<p>Name: ") Then
 
ThisWorkbook.Worksheets(1).Cells(3, 1) = Split(Split(htext, "<p>Name: ")(1), "<br")(0)
 
End If
 
ThisWorkbook.Worksheets(1).Cells(4, 1) = IE.LocationURL
 
'Add hyperlink

ThisWorkbook.Worksheets(1).Hyperlinks.Add ThisWorkbook.Worksheets(1).Cells(4, 1), ThisWorkbook.Worksheets(1).Cells(4, 1)
 
End Sub

আসলে, আমাদের যা করতে হবে তা হল সমস্ত শিল্প থেকে সমস্ত কোম্পানির জন্য যোগাযোগের তথ্য বের করা, তাই এই কাজটি সম্পূর্ণ করার জন্য আমাদের লুপ স্টেটমেন্ট ব্যবহার করতে হবে। নিম্নলিখিত সম্পূর্ণ কোড. এবং আপনি সমস্ত company.xlsm এর জন্য যোগাযোগের তথ্য পুনরুদ্ধার করার কোডটিও খুঁজে পেতে পারেন যা আপনি এই নিবন্ধের শেষে ডাউনলোড করতে পারেন৷

সোর্স কোড কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন? কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?
Sub Retrieve()
 
For idex = 2 To 18
 
'Create InternetExplorer

Set IE = CreateObject("InternetExplorer.Application")
 
'Let's see the browser window

IE.Visible = False
 
'Open the web page

IE.Navigate "https://www.austrade.gov.au/international/buy#"
 
'Wait while IE is loading

Do While IE.Busy
 
Application.Wait DateAdd("s", 1, Now)
 
Loop
 
Application.Wait (Now + TimeValue("00:00:10"))
 
idexn = idex - 1
 
'Part 1 - Select dropdown

Set selectobj = IE.document.getElementsByTagName("select")
 
m = IE.document.getElementsByTagName("option").Length - 1
 
selectobj(0).selectedIndex = idexn
 
selectobj(0).FireEvent ("onchange")
 
'Wait while IE is loading

Do While IE.readyState <> 4 Or IE.Busy = True
 
Application.Wait DateAdd("s", 1, Now)
 
Loop
 
Application.Wait (Now + TimeValue("00:00:10"))
 
wurl = IE.LocationURL
 
tot = IE.document.getElementsByClassName("SearchTotal")(0).innerHTML
 
pg = Int(tot / 25) + 1
 
Max = (tot Mod 25) - 1
 
'Part 2 - Select Class = "Name"

a = 2
 
For j = 1 To pg
 
If j = 1 Then
 
IE.Navigate (wurl)
 
Else
 
IE.Navigate (wurl & "&pg=" & j)
 
End If
 
Do While IE.Busy
 
Application.Wait DateAdd("s", 1, Now)
 
Loop
 
If j <> pg Then
 
For i = 1 To 24
 
Set searchobj = IE.document.getElementsByClassName("Name")
 
searchobj(i).Click
 
'Wait while IE is loading

Do While IE.readyState <> 4 Or IE.Busy = True
 
DoEvents
 
Loop
 
'Part 3 - Retrieve company name, email address & contact information

Set contactobj = IE.document.getElementsByClassName("contact-details block dark")
 
htext = contactobj(0).innerHTML
 
ThisWorkbook.Worksheets(idex).Cells(a, 1) = j
 
ThisWorkbook.Worksheets(idex).Cells(a, 2) = a - 1
 
If InStr(htext, "<p>Company Name: ") Then
 
ThisWorkbook.Worksheets(idex).Cells(a, 3) = Split(Split(htext, "<p>Company Name: ")(1), "<br")(0)
 
End If
 
If InStr(htext, "mailto:") Then
 
ThisWorkbook.Worksheets(idex).Cells(a, 4) = Split(Split(htext, "mailto:")(1), Chr(34) & ">")(0)
 
End If
 
If InStr(htext, "<p>Name: ") Then
 
ThisWorkbook.Worksheets(idex).Cells(a, 5) = Split(Split(htext, "<p>Name: ")(1), "<br")(0)
 
End If
 
ThisWorkbook.Worksheets(idex).Cells(a, 6) = IE.LocationURL
 
IE.GoBack
 
Do While IE.Busy
 
Application.Wait DateAdd("s", 1, Now)
 
Loop
 
a = a + 1
 
Next i
 
Else
 
For i = 0 To Max
 
Set searchobj = IE.document.getElementsByClassName("Name")
 
searchobj(i).Click
 
'Wait while IE is loading

Do While IE.readyState <> 4 Or IE.Busy = True
 
DoEvents
 
Loop
 
'Part 3 - Retrieve company name, email address & contact information

Set contactobj = IE.document.getElementsByClassName("contact-details block dark")
 
htext = contactobj(0).innerHTML
 
ThisWorkbook.Worksheets(idex).Cells(a, 1) = j
 
ThisWorkbook.Worksheets(idex).Cells(a, 2) = a - 1
 
If InStr(htext, "<p>Company Name: ") Then
 
ThisWorkbook.Worksheets(idex).Cells(a, 3) = Split(Split(htext, "<p>Company Name: ")(1), "<br")(0)
 
End If
 
If InStr(htext, "mailto:") Then
 
ThisWorkbook.Worksheets(idex).Cells(a, 4) = Split(Split(htext, "mailto:")(1), Chr(34) & ">")(0)
 
End If
 
If InStr(htext, "<p>Name: ") Then
 
ThisWorkbook.Worksheets(idex).Cells(a, 5) = Split(Split(htext, "<p>Name: ")(1), "<br")(0)
 
End If
 
ThisWorkbook.Worksheets(idex).Cells(a, 6) = IE.LocationURL
 
ThisWorkbook.Worksheets(idex).Hyperlinks.Add ThisWorkbook.Worksheets(idex).Cells(a, 6), ThisWorkbook.Worksheets(idex).Cells(a, 6)
 
IE.GoBack
 
Do While IE.Busy
 
Application.Wait DateAdd("s", 1, Now)
 
Loop
 
a = a + 1
 
Next i
 
End If
 
ThisWorkbook.Save
 
Next j
 
Set IE = Nothing
 
Set contactobj = Nothing
 
Next idex
 
End Sub

শুধুমাত্র যে বিন্দুটি আমাকে ব্যাখ্যা করতে হবে তা চিত্র 3.2-এ দেখানো হয়েছে। একটি ওয়েব মাত্র 25টি কোম্পানির তালিকা করতে পারে। যখন কোম্পানির মোট সংখ্যা 25 টির বেশি হবে, তখন একাধিক পৃষ্ঠা থাকবে। চিত্র 3.2 দেখায় যে প্রথম পৃষ্ঠার পরে পৃষ্ঠাগুলির ঠিকানা পাওয়ার নিয়ম রয়েছে। এটি প্রথম পৃষ্ঠার সংযুক্ত ঠিকানা, “&pg=” এবং প্রকৃত পৃষ্ঠা নম্বরের ফলাফল। এবং শেষ পৃষ্ঠার আগে সমস্ত পৃষ্ঠার জন্য, মোট বস্তুর সংখ্যা হল 25।  “IE.document.getElementsByClassName(“SearchTotal”)(0).innerHTML” একটি শিল্পের মধ্যে মোট কোম্পানির সংখ্যা ফেরত দিতে পারে। আমাদের ক্ষেত্রে, এটি হবে 651। "Int(tot / 25) + 1" আপনাকে মোট পৃষ্ঠার সংখ্যা পেতে পারে। এবং “Max =(tot Mod 25) – 1” শেষ পৃষ্ঠায় কোম্পানির সর্বোচ্চ সংখ্যা ফেরত দিতে পারে। আমি এখানে থামব এবং কোডটিতে এই ধারণাটি কীভাবে প্রয়োগ করা যায় তা বের করতে আপনাকে ছেড়ে দেব। কোড উপলব্ধি করার জন্য এটি আপনার জন্য অনেক ভাল পদ্ধতি। আপনার কোন প্রশ্ন থাকলে মন্তব্য করতে পারেন।

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 3.2

এখানে আপনাকে চূড়ান্ত এক্সেলের অংশ দেখায়। একটি শিল্পের মধ্যে সমস্ত কোম্পানির জন্য যোগাযোগের তথ্য একটি ওয়ার্কশীটে একত্রিত করা হয়৷

কিভাবে একটি ওয়েবসাইট থেকে এক্সেলে ডেটা আমদানি করবেন?

চিত্র 3.3 [সম্পূর্ণ ভিউ পেতে ছবিতে ক্লিক করুন]

ওয়ার্কিং ফাইল ডাউনলোড করুন

নিচের লিঙ্ক থেকে কাজের ফাইলটি ডাউনলোড করুন।

ওয়েব-থেকে-Excel.rar

থেকে-ডেটা-টান

সম্পর্কিত প্রবন্ধ

  • কিভাবে ওয়েবসাইট থেকে Excel এ স্বয়ংক্রিয়ভাবে ডেটা বের করবেন?
  •  Word থেকে Excel এ ডেটা (বাক্য, অনুচ্ছেদ, টেবিল, মন্তব্য) আমদানি করুন
  • 6 সেরা এক্সেল VBA প্রোগ্রামিং বই (শিশু ও উন্নত ব্যবহারকারীদের জন্য)
  • এক্সেল ভিবিএ প্রোগ্রামিং এবং ম্যাক্রো শিখুন (ফ্রি টিউটোরিয়াল – ধাপে ধাপে)
  • এক্সেল VBA কোডিং টিপস
  • আপনি VBA দিয়ে কি করতে পারেন
  • ভিবিএ ম্যাক্রোর ভূমিকা


  1. কিভাবে টেক্সট ফাইল থেকে এক্সেলে ডেটা আমদানি করবেন (3টি পদ্ধতি)

  2. কীভাবে একটি ওয়েব ফর্ম থেকে একটি এক্সেল স্প্রেডশীট পপুলেট করবেন

  3. এক্সেলের একটি প্রশ্নাবলী থেকে কীভাবে গুণগত ডেটা বিশ্লেষণ করবেন

  4. এক্সেলে ডেটা মডেল থেকে কীভাবে ডেটা পাওয়া যায় (2টি সহজ পদ্ধতি)