Jump to content

Welcome to [ iT ] Forums
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
MU Moi ra - MU SS2

MU Moi ra - MU SS2

Hình ảnh

Thảo luận về cách lấy thông tin từ một Web Site bất kỳ

* * - - - 1 Bình chọn

  • Please log in to reply
9 replies to this topic

#1
Huỳnh Văn Thâm

Huỳnh Văn Thâm

    Thạc sĩ CSTH

  • VIP
  • PipPipPipPipPipPip
  • 2364 Bài Viết:
Có một vấn đề được đặt ra như sau: Lấy thông tin của một Web Site bất kỳ lưu vào CSDL của mình sau đó sẽ hiện thị lại cho người dùng xem.
Nên nhớ là cách lấy tự động đó nha.
- Nghe nói có chương trinh KAPOW nó làm được điều này
- Trước mắt là tìm hiểu cách giải quyết vấn đề cái đã

Giải quyết vấn đề của mình như sau:
Cách 1: Trước tiên đọc nội dung Source Code Html của trang Web đó và lưu vào CSDL liệu
Cách 2: Phân tích nội dung Source Code Html và lấy nội dung nào đó thôi.

Theo như các bạn thì cách nào tốt nhất?

Bài viết này được chỉnh sửa bởi Huỳnh Văn Thâm: 16 March 2008 - 12:14 AM


#2
Huỳnh Văn Thâm

Huỳnh Văn Thâm

    Thạc sĩ CSTH

  • VIP
  • PipPipPipPipPipPip
  • 2364 Bài Viết:
Source code của việc đọc nội dung html của một URL như sau (ngôn ngữ C#):
public string GetWebContent(string Address)
	{
		System.Net.WebClient MyClient;
		System.IO.Stream MyStream;
		System.IO.StreamReader MyStreamReader;
		string txOutput = "";
		if (Address != "")
		{
			//create an instance of the WebClient. System.Net.WebClient 
			MyClient = new System.Net.WebClient();
			//create a stream object to get the stream from the OpenRead method. System.IO.Stream 
			MyStream = MyClient.OpenRead(Address);
			//create a streamreader to parse through the stream. System.IO.StreamReader 
			MyStreamReader = new System.IO.StreamReader(MyStream);
			string NewLine;
			//loop through the stream and put the output in the textbox. 
			while ((NewLine = MyStreamReader.ReadLine()) != null)
			{
				txOutput += NewLine + "\r\n";
			} MyStream.Close();
		} return txOutput;
	}
Nếu bạn dùng Unicode thì cách lấy như sau:
public string GetWebContent(string Address)
	{
		  UTF8Encoding enc = new UTF8Encoding();
		  WebClient browser = new WebClient();
		  string content = enc.GetString(browser.DownloadData(Address));
		  return content;
		}

Bài viết này được chỉnh sửa bởi Huỳnh Văn Thâm: 16 March 2008 - 12:12 AM


#3
Huỳnh Văn Thâm

Huỳnh Văn Thâm

    Thạc sĩ CSTH

  • VIP
  • PipPipPipPipPipPip
  • 2364 Bài Viết:
Tiếp theo bạn phân tích các thể HTML và sau đó tổ chức lưu lại theo í mình.
Mình phân tích các thể HTML như sau:

Tệp Đính Kèm



#4
grandholy

grandholy

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 54 Bài Viết:
không hiểu lắm, ý bạn là lấy thông tin nghĩa là sao? thông tin về cái gì mới được chứ

#5
duc phuc

duc phuc

    Thành viên mới

  • Newbies
  • 1 Bài Viết:
chào bạn thẩm , mình hiện đang nghiên cứu về hút thông tin trực tuyến từ web online lưu về file .thấy bài viết của bạn khá hay, do mình mới nghiên cứu vào lĩnh vực này nen rất muốn làm wen với bạn để học hỏi thêm, nếu được ban cho minh YM nha :d

#6
Apple 

Apple 

    November rain

  • Advance Member
  • PipPipPipPipPipPip
  • 2076 Bài Viết:

Source code của việc đọc nội dung html của một URL như sau (ngôn ngữ C#):

public string GetWebContent(string Address)
	{
		System.Net.WebClient MyClient;
		System.IO.Stream MyStream;
		System.IO.StreamReader MyStreamReader;
		string txOutput = "";
		if (Address != "")
		{
			//create an instance of the WebClient. System.Net.WebClient 
			MyClient = new System.Net.WebClient();
			//create a stream object to get the stream from the OpenRead method. System.IO.Stream 
			MyStream = MyClient.OpenRead(Address);
			//create a streamreader to parse through the stream. System.IO.StreamReader 
			MyStreamReader = new System.IO.StreamReader(MyStream);
			string NewLine;
			//loop through the stream and put the output in the textbox. 
			while ((NewLine = MyStreamReader.ReadLine()) != null)
			{
				txOutput += NewLine + "\r\n";
			} MyStream.Close();
		} return txOutput;
	}
Nếu bạn dùng Unicode thì cách lấy như sau:
public string GetWebContent(string Address)
	{
		  UTF8Encoding enc = new UTF8Encoding();
		  WebClient browser = new WebClient();
		  string content = enc.GetString(browser.DownloadData(Address));
		  return content;
		}

Anh Thâm ơi,nếu viết bằng ngôn ngữ XML có được không anh,dùng visual studio 2005 ngôn ngữ vc# ấy

Hạnh phúc là những gì hiện đang có và nắm giữ.không phải những thứ không có được hoặc đã mất đi


#7
tulous

tulous

    Pé Mập

  • VIP
  • PipPipPipPipPip
  • 1047 Bài Viết:

Anh Thâm ơi,nếu viết bằng ngôn ngữ XML có được không anh,dùng visual studio 2005 ngôn ngữ vc# ấy

Nội dung của 1 website trên mạng thì đã là HTML rồi, làm sao mà lấy dưới định dạng XML được. Có lẽ bạn nhầm lẫn với webservices, lúc đó dữ liệu được trả về theo một định dạng nhất định của nhà cung cấp.

#8
khanhpt

khanhpt

    Cao đẳng CSTH

  • Advance Member
  • PipPipPipPip
  • 682 Bài Viết:
Chỉ có thể làm được theo cách 2 của bác Thâm, tuy nhiên bên cạnh đó còn có nhiều vấn đề phức tạp khác nữa. Công việc phân tích và lấy nội dung của website khác thực sự là một việc hơi khó khăn ở giai đoạn phân tích mã html để biết đâu là nội dung cần lấy, đâu là phần bỏ qua. Mình cũng đã làm thử thông qua RSS và template của các website mẫu và có một số thành công nhất định. Tuy nhiên cũng có mặt hạn chế là việc phân tích nội dung phụ thuộc hoàn toàn vào các template của website nguồn, nếu nguồn thay đổi mà hệ thống của mình chưa kịp cập nhật là coi như " tiêu " :dede
demo chạy thử :dot: http://tintucblog.co.cc - đây là 1 webblog lấy tin tức qua 1 site trung gian của mình, site trung gian này chính là phần mình đang thực hiện và nhiệm vụ chính của nó là đi thu thập tin từ các web khác rồi sau đó cung cấp dạng tin RSS đầy đủ cho http://tintucblog.co.cc .

@all : nội dung của blog trên là tự động copy, không liên quan tới mình :dot:

Bài viết này được chỉnh sửa bởi khanhpt: 09 May 2009 - 12:58 AM

Thủ thuật, mẹo vặt cho cuộc sống
http://www.mozilla.com/en-US/firefox/ Vừa nhanh hơn IE lại vừa "đề kháng" với các kiểu keylogger dính vào web :)
http://cuasotinhoc.vn/index.php?showtopic=154488

#9
keither

keither

    Căn bản tin học tốt

  • Advance Member
  • Pip
  • 83 Bài Viết:
Một dạng lấy dữ liệu trang wweb khác là rss: xml

#10
luunguyenkt

luunguyenkt

    Thành viên mới

  • Newbies
  • 1 Bài Viết:

anh ơi có cách nào chỉ hiển thị được 1 phần của trang web ko? ví dụ em chỉ muốn hiện thị 1 bảng nào đó của trang web thui thì có dk ko anh? mong anh chỉ dẫn ạ !








Balloon vs. Thorns

MU Phuc Hung

Làm Việc Tài Nhà

Mu Da Nang

Tuyển Nhân Viên Bán Hàng

Tư vấn sức khỏe trực tuyến