C#爬虫怎么绕过图片网站的反爬?
private void button1_Click(object sender, EventArgs e){
Thread thread = new Thread(Download);
thread.Start();
}
public void Download()
{
for (int i = 1; i <= 22; i++)
{
string url = "https://www.xiurenji.com/XiuRen/6545";
url += "_" + i + ".html";
string code = GetWebClient(url);
MatchCollection mc = Regex.Matches(code, @"uploadfile/202009/23/{10}.jpg");
foreach (Match mat in mc)
{
string url1 = "https://img1.xiurenji.com/";
url1 += mat.ToString();
ImgSave(url1);
}
}
}
/// 图片另存为
/// </summary>
/// <param name="url">路径</param>
public void ImgSave(string url)
{
WebRequest imgRequest = WebRequest.Create(url);
HttpWebResponse res;
try
{
res = (HttpWebResponse)imgRequest.GetResponse();
}
catch (WebException ex)
{
res = (HttpWebResponse)ex.Response;
}
if (res.StatusCode.ToString() == "OK")
{
System.Drawing.Image downImage = System.Drawing.Image.FromStream(imgRequest.GetResponse().GetResponseStream());
string deerory = string.Format(@"D:\img\{0}\", DateTime.Now.ToString("yyyy-MM-dd"));
string fileName = string.Format("{0}.png", DateTime.Now.ToString("HHmmssffff"));
if (!System.IO.Directory.Exists(deerory))
{
System.IO.Directory.CreateDirectory(deerory);
}
downImage.Save(deerory + fileName);
downImage.Dispose();
}
}
下载下来的图片全是清一色的界面(我估摸着是有反爬),希望来个哥们解决下怎么绕过反爬,最好有代码。
感觉是正则不对吧,研究下,被领导看到看这个就{:1_911:} fiddler抓包对比请求头,缺失的在代码加上即可 header或者 body 或者 cookie 可能会有一个密钥鉴权,
加上就成
昨天帮人搞爬图时候也遇到一样的状况,加上协议头部就可以了 咱俩爬的一个网址哈哈哈,我成功了 请求头加上referer,cookie,ua再试试 liu8359 发表于 2020-9-25 09:26
感觉是正则不对吧,研究下,被领导看到看这个就
正则是对了的,下载下来的图片清一色是错误提示,图片来自***。 又来送福利{:1_886:} yudian 发表于 2020-9-25 09:40
咱俩爬的一个网址哈哈哈,我成功了
你是用易语言爬取的吧,我应该看到过你发的
页:
[1]
2