C# 自动爬图工具 为了方便爬MM图片
1
protected string fullName = string.Empty;
2
protected int TopCount = 0;
3![](/Images/OutliningIndicators/None.gif)
4
private void button1_Click(object sender, EventArgs e)
5
{
6
Application.DoEvents();
7![](/Images/OutliningIndicators/InBlock.gif)
8
this.button1.Enabled = false;
9
this.tbCount.Enabled = false;
10
this.tbKey.Enabled = false;
11
12
try
13
{
14
TopCount = Convert.ToInt32(this.tbCount.Text);
15
}
16
catch
17
{
18
MessageBox.Show("输入数字");
19
}
20![](/Images/OutliningIndicators/InBlock.gif)
21
string HTML = string.Empty;
22
for (int x = 0; x < TopCount; x++)
23
{
24![](/Images/OutliningIndicators/InBlock.gif)
25
Application.DoEvents();
26![](/Images/OutliningIndicators/InBlock.gif)
27
string url = @"http://image.baidu.com/i?z=3&cl=2&ct=201326592&sn=&lm=-1&cm=1&sc=0&bu=&rn=21&tn=baiduimage&word={0}&pn={1}";
28
string Key = System.Web.HttpUtility.UrlEncode(tbKey.Text, System.Text.UnicodeEncoding.GetEncoding("GB2312")).ToUpper();
29![](/Images/OutliningIndicators/InBlock.gif)
30
int ctr = 21 * x;
31![](/Images/OutliningIndicators/InBlock.gif)
32
url = string.Format(url, Key, ctr);
33
Application.DoEvents();
34![](/Images/OutliningIndicators/InBlock.gif)
35
WebRequest myRequest = WebRequest.Create(url);
36
WebResponse myResponse = myRequest.GetResponse();
37
Stream S = myResponse.GetResponseStream();
38
StreamReader sr = new System.IO.StreamReader(S, Encoding.Default);
39![](/Images/OutliningIndicators/InBlock.gif)
40
HTML += sr.ReadToEnd();
41![](/Images/OutliningIndicators/InBlock.gif)
42
sr.Close();
43
}
44
45![](/Images/OutliningIndicators/InBlock.gif)
46![](/Images/OutliningIndicators/InBlock.gif)
47![](/Images/OutliningIndicators/InBlock.gif)
48
string Pattern = @"http:\/\/[^\'\""]*\.jpg|http:\/\/[^\'\""]*\.gif";
49
System.Text.RegularExpressions.Regex Re = new System.Text.RegularExpressions.Regex(Pattern);
50![](/Images/OutliningIndicators/InBlock.gif)
51
TopCount = Re.Matches(HTML).Count;
52![](/Images/OutliningIndicators/InBlock.gif)
53![](/Images/OutliningIndicators/InBlock.gif)
54![](/Images/OutliningIndicators/InBlock.gif)
55
int count = 0;
56
if (Re.Matches(HTML).Count >= 6)
57
{
58
foreach (System.Text.RegularExpressions.Match m in Re.Matches(HTML))
59
{
60
Application.DoEvents();
61![](/Images/OutliningIndicators/InBlock.gif)
62![](/Images/OutliningIndicators/InBlock.gif)
63
this.button1.ForeColor = Color.Red;
64
this.button1.Text = count.ToString() + "/" + TopCount;
65![](/Images/OutliningIndicators/InBlock.gif)
66
if (m.Value.IndexOf("baidu") < 0)
67
{
68
download(m.Value);
69![](/Images/OutliningIndicators/InBlock.gif)
70
Application.DoEvents();
71![](/Images/OutliningIndicators/InBlock.gif)
72
this.pictureBox1.ImageLocation = fullName;
73![](/Images/OutliningIndicators/InBlock.gif)
74![](/Images/OutliningIndicators/InBlock.gif)
75
count++;
76![](/Images/OutliningIndicators/InBlock.gif)
77
}
78![](/Images/OutliningIndicators/InBlock.gif)
79
}
80
}
81![](/Images/OutliningIndicators/InBlock.gif)
82
}
83![](/Images/OutliningIndicators/None.gif)
84![](/Images/OutliningIndicators/None.gif)
85
//
86
private void download(string url)
87
{
88![](/Images/OutliningIndicators/InBlock.gif)
89
try
90
{
91
Application.DoEvents();
92![](/Images/OutliningIndicators/InBlock.gif)
93
string extend = url.Substring(url.LastIndexOf("."));
94
string name = this.tbKey.Text+Guid.NewGuid().ToString();
95
string fileName = name + extend;
96
97
WebRequest myRequest = WebRequest.Create(url);
98
Stream stream = myRequest.GetResponse().GetResponseStream();
99
Byte[] buffer = new byte[256];
100![](/Images/OutliningIndicators/InBlock.gif)
101
string path= @"F:\\自动爬图\\"+this.tbKey.Text+"\\";
102![](/Images/OutliningIndicators/InBlock.gif)
103
if (Directory.Exists(path))
104
{ }
105
else
106
{
107
Directory.CreateDirectory(path);
108
}
109![](/Images/OutliningIndicators/InBlock.gif)
110
fullName = fileName = path + fileName;
111![](/Images/OutliningIndicators/InBlock.gif)
112![](/Images/OutliningIndicators/InBlock.gif)
113![](/Images/OutliningIndicators/InBlock.gif)
114
FileStream filestream = new FileStream(fullName, FileMode.Create, FileAccess.Write);
115
int sizeCount = stream.Read(buffer, 0, 256);
116
try
117
{
118![](/Images/OutliningIndicators/InBlock.gif)
119
int sum = 0;
120
while (sizeCount > 0)
121
{
122
Application.DoEvents();
123![](/Images/OutliningIndicators/InBlock.gif)
124
filestream.Write(buffer, 0, sizeCount);
125
sizeCount = stream.Read(buffer, 0, 256);
126
sum += sizeCount;
127
this.Text = "已传输"+sum + "字节";
128
}
129![](/Images/OutliningIndicators/InBlock.gif)
130
131
}
132
catch (Exception ex)
133
{
134![](/Images/OutliningIndicators/InBlock.gif)
135![](/Images/OutliningIndicators/InBlock.gif)
136
}
137
filestream.Close();
138
stream.Close();
139![](/Images/OutliningIndicators/InBlock.gif)
140![](/Images/OutliningIndicators/InBlock.gif)
141
}
142
catch (Exception ex)
143
{
144![](/Images/OutliningIndicators/InBlock.gif)
145![](/Images/OutliningIndicators/InBlock.gif)
146
}
147![](/Images/OutliningIndicators/InBlock.gif)
148![](/Images/OutliningIndicators/InBlock.gif)
149![](/Images/OutliningIndicators/InBlock.gif)
150
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
80
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
83
![](/Images/OutliningIndicators/None.gif)
84
![](/Images/OutliningIndicators/None.gif)
85
![](/Images/OutliningIndicators/None.gif)
86
![](/Images/OutliningIndicators/None.gif)
87
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/InBlock.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/InBlock.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)