2013. 04. 20 사이트 자원 캐쳐
특정 사이트에 있는 이미지 혹은 동영상 등의 링크를 가져옵니다.
(프레임 내에 있는 img 태그 혹은 embed 태그는 가져오지 않습니다.)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.Net;
using System.IO;
using System.Windows.Forms;
using System.Diagnostics;
namespace webbrowserResource
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.imageList1.ImageSize = new Size(64, 64);
}
public Bitmap getImageFromURL(String sURL)
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(sURL);
myRequest.Method = "GET";
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(myResponse.GetResponseStream());
myResponse.Close();
return bmp;
}
private void button1_Click(object sender, EventArgs e)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://" + textBox1.Text);
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream resStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(resStream, Encoding.Default);
string result = readStream.ReadToEnd();
int idx = 0;
listView1.Items.Clear();
imageList1.Images.Clear();
resStream.Close();
readStream.Close();
string[] imgURL = Regex.Split(result, "<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>");
for (int i = 1; i < imgURL.Length; i+=2)
{
string iURL = string.Empty;
ListViewItem item = new ListViewItem();
if (imgURL[i].StartsWith("http://")) iURL = imgURL[i];
else iURL = "http://" + textBox1.Text + (textBox1.Text.Substring(textBox1.Text.Length - 1) != "/" ? "/" : "") + imgURL[i];
if (iURL.IndexOf(' ') > -1) iURL = iURL.Substring(0, iURL.IndexOf(' '));
try
{
this.imageList1.Images.Add(getImageFromURL(iURL));
item.ImageIndex = idx; idx++;
item.Text = iURL;
this.listView1.Items.Add(item);
}
catch (Exception) { }
}
string[] embedURL = Regex.Split(result, "<embed[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>");
for (int i = 1; i < embedURL.Length; i += 2) listView2.Items.Add(embedURL[i]);
}
}
private void listView1_DoubleClick(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
Process proc = new Process();
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.FileName = listView1.SelectedItems[0].Text;
proc.Start();
}
}
}
}
'소스 관련' 카테고리의 다른 글
| 2013. 05. 04 네이버 금칙어 관리기 (1) | 2013.05.04 |
|---|---|
| 2013. 05. 04 네이버 카페 조회수 올리기 (13) | 2013.05.04 |
| ShowWindow를 통한 윈도우 숨기기 (0) | 2013.04.01 |
| C# 화면 회전(Screen Rotate) (1) | 2013.03.24 |
| C# 크레이지 마우스(crazy mouse) (0) | 2013.03.24 |