Hidistro.UI.Web/Crawler.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.IO;
using System.Net;
using System.Runtime.CompilerServices;
using System.Web;
public class Crawler
{
public Crawler(string sourceUrl, HttpServerUtility server)
{
this.SourceUrl = sourceUrl;
this.Server = server;
}
public Crawler Fetch()
{
HttpWebRequest request = WebRequest.Create(this.SourceUrl) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (response.StatusCode != HttpStatusCode.OK)
{
this.State = string.Concat(new object[] { "Url returns ", response.StatusCode, ", ", response.StatusDescription });
return this;
}
if (response.ContentType.IndexOf("image") == -1)
{
this.State = "Url is not an image";
return this;
}
this.ServerUrl = PathFormatter.Format(Path.GetFileName(this.SourceUrl), Config.GetString("catcherPathFormat"));
string path = this.Server.MapPath(this.ServerUrl);
if (!Directory.Exists(Path.GetDirectoryName(path)))
{
Directory.CreateDirectory(Path.GetDirectoryName(path));
}
try
{
byte[] buffer;
BinaryReader reader = new BinaryReader(response.GetResponseStream());
using (MemoryStream stream2 = new MemoryStream())
{
int num;
byte[] buffer2 = new byte[0x1000];
while ((num = reader.Read(buffer2, 0, buffer2.Length)) != 0)
{
stream2.Write(buffer2, 0, num);
}
buffer = stream2.ToArray();
}
System.IO.File.WriteAllBytes(path, buffer);
this.State = "SUCCESS";
}
catch (Exception exception)
{
this.State = "抓取错误:" + exception.Message;
}
return this;
}
}
后面还有 9 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
