VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • ASP.net教程之C#采用vony.Html.AIO插件批量爬MM网站图

一、创建项目

  1.创建一个.netframework的控制台项目命名为Crawler

2.安装nuget包搜索名称Ivony.Html.AIO,使用该类库什么方便类似jqury的选择器可以根据类名或者元素类型来匹配元素,无需要写正则表达式。

3.创建一个图片类Image

一、抓取页面图片

1.拿到所有图片页面的地址

本次爬取的网站为https://www.mntup.com/,打开页面进入二级目录https://www.mntup.com/SiWa.html,并查页面看源代码,如下图:

图片页都在class=“dana”的div下面,我们要拿去div中超链接的href,如下格式:

<div class="dana"><a href=/Rosimm/liantiyimeizi_4f4d781d.html title=[Rosi写真]NO.2637_红色吊带高叉连体衣妹子床上狗爬式秀浑圆翘臀撩人诱惑写真38P target=_blank>
[Rosi写真]NO.2637_红色吊带高叉连体衣妹子床上狗爬式秀浑圆翘臀撩人诱惑写真38P <b> <font color=ff0000>2019-02-26</b></font>
</a></div>

首先考虑要拿到所有图片页面的超链接,c#代码下:

1
2
3
4
5
6
7
8
9
10
11
12
13
//需要定义一个list用来存放所有的页面链接
static List<string> categoryUrl = new List<string>();
 
//加载url到文档
  IHtmlDocument source = new JumonyParser().LoadDocument("https://www.mntup.com/XiuRen.html", System.Text.Encoding.GetEncoding("utf-8"));
     
            //获取所有class=dana的的a标签
            var divLinks = source.Find(".dana a");
            foreach (var aLink in divLinks)
            {
                var categoryName = aLink.Attribute("href").Value(); //获取a中的链接
                categoryUrl.Add(categoryName);
            }

  

 2.打开图片页,发现是带有分页的,那就要获取所有的分页的链接了。分页的地址都在页面当中,所以我们直接匹配就好。

由于每个图片页都有分页地址,所以直接匹配分页地址,C#代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
foreach (var url in categoryUrl)
            {
               //获取图片也的的文档
                IHtmlDocument html = new JumonyParser().LoadDocument($"{address}{url}", System.Text.Encoding.GetEncoding("utf-8"));
 
                //获取每个分页面并下载
                var pageLink = html.Find(".page a");
                foreach (var alingk in pageLink)
                {
                    string href = alingk.Attribute("href").Value();
                    Console.WriteLine($"获取分页地址{href}");
 
                }
            }