-
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#代码下:
12345678910111213//需要定义一个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#代码如下:
1234567891011121314foreach
(
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}"
);
}
}
栏目列表最新更新如何使用OS模块中的stat方法 Python os 模块 seek() 方法 python打开文件实例1 Python写入文件 什么是流? 文件操作如何进制逐行读取 Python相对路径 with创建临时运行环境 Python文件操作 .Net Standard(.Net Core)实现获取配置信息 Linux PXE + Kickstart 自动装机 Shell 编程 基础 Shell 编程 条件语句 CentOS8-网卡配置及详解 Linux中LVM逻辑卷管理 1.数码相框-相框框架分析(1) Ubuntu armhf 版本国内源 Linux中raid磁盘阵列 搭建简易网站 access教程之Access简介 mysql 安装了最新版本8.x版本后的报错: Mysql空间数据&空间索引(spatial) 如何远程连接SQL Server数据库的图文教程 复制SqlServer数据库的方法 搜索sql语句 sql中返回参数的值 sql中生成查询的模糊匹配字符串 数据定义功能 数据操作功能