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

Jump to content


Phong thu am chuyen nghiep Calvin Music

MU Phuc Hung

Làm Việc Tài Nhà

Mu Da Nang

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

Mu moi ra - MU SS2

Mu moi ra - MU Phuong Hoang

Mu moi ra - Thien Bao

Trang 1 / 1
  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời cho chủ đề này

Thảo luận về cách lấy thông tin từ một Web Site bất kỳ Đánh Giá: **--- 1 Bình chọn

#1 User is offline   Huỳnh Văn Thâm 

  • Nhóm: VIP
  • Bài Viết: 2364
  • Gia Nhập: 09-October 07
  • Thạc sĩ CSTH
  • PipPipPipPipPipPip

Gửi vào 16 March 2008 - 12:04 AM

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

0

#2 User is offline   Huỳnh Văn Thâm 

  • Nhóm: VIP
  • Bài Viết: 2364
  • Gia Nhập: 09-October 07
  • Thạc sĩ CSTH
  • PipPipPipPipPipPip

Gửi vào 16 March 2008 - 12:11 AM

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

0

#3 User is offline   Huỳnh Văn Thâm 

  • Nhóm: VIP
  • Bài Viết: 2364
  • Gia Nhập: 09-October 07
  • Thạc sĩ CSTH
  • PipPipPipPipPipPip

Gửi vào 30 March 2008 - 11:37 PM

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


0

#4 User is offline   grandholy 

  • Nhóm: Advance Member
  • Bài Viết: 54
  • Gia Nhập: 10-October 06
  • Căn bản tin học tốt
  • Pip

Gửi vào 20 April 2008 - 11:51 PM

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ứ
0

#5 User is offline   duc phuc 

  • Nhóm: Newbies
  • Bài Viết: 1
  • Gia Nhập: 12-January 09
  • Thành viên mới

  Gửi vào 12 January 2009 - 06:05 PM

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
0

#6 User is offline   Apple  

  • Nhóm: Advance Member
  • Bài Viết: 2076
  • Gia Nhập: 31-January 07
  • November rain
  • PipPipPipPipPipPip

Gửi vào 11 February 2009 - 10:46 PM

View PostHuỳnh Văn Thâm, on Mar 16 2008, 12:11 AM, said:

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
0

#7 User is offline   tulous 

  • Nhóm: VIP
  • Bài Viết: 1047
  • Gia Nhập: 28-January 06
  • Pé Mập
  • PipPipPipPipPip

Gửi vào 12 February 2009 - 11:21 AM

Quote

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.
Easy Sharing
Sơ lược về xử lý khi nhiễm virus
<a href="http://cuasotinhoc.vn/index.php?showtopic=108658" target="_blank">http://cuasotinhoc.vn/index.php?showtopic=108658</a>
<a href="http://cuasotinhoc.vn/index.php?showtopic=154380&hl=" target="_blank">http://cuasotinhoc.vn/index.php?showtopic=154380&hl=</a>
0

#8 User is offline   khanhpt 

  • Nhóm: Advance Member
  • Bài Viết: 679
  • Gia Nhập: 26-June 06
  • Cao đẳng CSTH
  • PipPipPipPip

Gửi vào 09 May 2009 - 12:45 AM

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
0

#9 User is offline   keither 

  • Nhóm: Advance Member
  • Bài Viết: 83
  • Gia Nhập: 09-October 06
  • Căn bản tin học tốt
  • Pip

Gửi vào 21 May 2009 - 03:35 PM

Một dạng lấy dữ liệu trang wweb khác là rss: xml
0

Chia sẻ chủ để


Trang 1 / 1
  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời cho chủ đề này

1 người đang đọc chủ đề này
0 thành viên, 1 khách, 0 thành viên ẩn