网站管理员希望将别人的整站数据下载到自己的网站里或者将别人网站的一些内容保存到自己的服务器上。从内容中抽取相关的字段,发布到自己的网站系统中。有时需要将网页相关的文件也保存到本地,如图片、附件等。

图片采集软件能采集任何网站的各种格式图片,实现把所有文章、新闻、帖子等中间的图片全部有有序列的分类后保存到您的计算机上等功能,可以把任何论坛网站的所有帖子的图片采集到本地,轻松过滤广告等,是网站、论坛站长和喜欢收集美图的朋友的必备工具。

本文演示使用C# WebBrowser控件实现自动识别下一页,按标题分类,图片自动下载(不重复),效果如下图1所示。在随附的代码下载中提供了完整的源代码。

图1 效果图

演示程序结构

创建演示程序,我在Visual Studio 2013 选择新建C#Windows窗体应用程序命名为ImgSpider,添加Controls文件夹包含包含封装label,textbox控件;Core文件夹内有字典实体Entity用到的基类;Entity文件夹有读取配置文件dict.xml的映射类;Helper文件夹有DownLoadHelper用于下载图片,HtmlParserHelper解析HTML,XmlHelper读取XML文档;窗体文件frmAutoBorwser是程序的操作界面。图2 显示了演示程序的整体结构。

程序执行

窗体文件frmAutoBorwser

在窗体文件frmAutoBorwser使用到的控件,

第一,WebBrowser控件

WebBrowser 是一个 .NET 控件类,在 .NET Framework 2.0 版中新增。WebBrowser 类使用户可以在窗体中导航网页。使用 WebBrowser 控件可以在 Windows 窗体应用程序中承载网页以及支持浏览器的其他文档。例如,可以使用 WebBrowser 控件在应用程序中提供基于 HTML 的集成用户帮助或 Web 浏览功能。此外,还可以使用 WebBrowser 控件向 Windows 窗体客户端应用程序添加基于 Web 的现有控件。

第二,Timer 控件

通过引发 Timer 事件,Timer 控件可以有规律地隔一段时间执行一次代码。

第三,DataGridView 控件

将数据绑定到 DataGridView 控件非常简单和直观,在大多数情况下,只需设置 DataSource 属性即可。

点击采集图片按钮

WebBrowser.Navigate方法导航网页到采集的起始网址。要注意WebBrowser控件加载完成后,才可以继续采集操作。通过Timer控件有规律的间隔执行,WebBrowser控件加载完后要采集的任务。

获取当前页标题URL,判断是否已经下载

处理需要下载的标题URL,WebBrowser导航到指定URL

获取当前标题图片URL,并且WebBorwser导航到下一张图片URL

下载图片,判断是否按标题拆分,更新Access数据库

DownLoadHelper.cs文件的主要方法是

下载图片

HtmlParserHelper.cs文件的主要方法

第一,获取当前图片URL和下一张图片URL

第二,获取当前页URL和下一页URL

结束

本文演示使用C# WebBrowser控件实现图片采集软件,自动翻页,自动分类(收集美图必备工具),效果如下图1所示。在随附的代码下载中提供了完整的源代码。完整的源代码下载链接

C#图片采集软件 自动翻页 自动分类(收集美图必备工具)(一)的更多相关文章

  1. WPF 把图片分割成两份自动翻页 WpfFlipPageControl:CtrlBook 书控件

    原文:WPF 把图片分割成两份自动翻页 WpfFlipPageControl:CtrlBook 书控件 版权声明:本文为博主原创文章,需要转载尽管转载. https://blog.csdn.net/z ...

  2. ViewPager实现自动翻页功能 --转载出处找不到了,根据自己的理解写个随笔方便以后的记忆以及代码的共享,感谢给我启发的那位高手--第一次写博客哈

    xml文件 textview 用于显示图片的标题 viewpager 用于实现翻页效果 <LinearLayout xmlns:android="http://schemas.andr ...

  3. 10款无限滚动自动翻页jquery插件

    2012年3月29日 无限滚动自动翻页可以说是web2.0时代的一项堪称伟大的技术,它让我们在浏览页面的时候只需要把滚动条拉到网页底部就能自动显示下一页的 结果,改变了一直以来只能通过点击下一页来翻页 ...

  4. 万能js实现翻页,动态生成内容自动翻页,兼容各种浏览器(已测试)----神器版!

    转--http://www.2cto.com/kf/201402/277535.html 万能js实现翻页,动态生成内容自动翻页,兼容各种浏览器(已测试)----神器版! 2014-02-11     ...

  5. pyspider示例代码五:实现自动翻页功能

    实现自动翻页功能 示例代码一 #!/usr/bin/env python # -*- encoding: utf- -*- # Created on -- :: # Project: v2ex fro ...

  6. Python-爬虫之股转系统下载文件自动翻页

    上次代码只能抓取一个网页上的链接,本次可以自主设定抓取的页面个数. 代码如下: from selenium import webdriver import os, time class Downloa ...

  7. C# 自动翻页 PPT 测试脚本

    本文告诉大家一个可以使用的 C# 脚本,可以用来自动打开 PPT 文件,然后不断执行翻页.每次翻页都截图.翻页之后自动关闭 PPT 再次打开 最近发现给 Office 做的插件,会在一定翻页次数的时候 ...

  8. 使用Python在自己博客上进行自动翻页

    先上一张代码及代码运行后的输出结果的图! 下面上代码: # coding=utf-8 import os import time from selenium import webdriver #打开火 ...

  9. 通过js实现整屏滑动+全屏翻页+动画展示+线性图

    技术:html+css+jquery+jquery-ui.js+jquery.fullPage.js   概述 本demo主要通过html+css+js实现整屏滑动,全屏翻页并带动画的功能效果,借助于 ...

随机推荐

  1. linux 不用 ioctl 的设备控制

    有时控制设备最好是通过写控制序列到设备自身来实现. 例如, 这个技术用在控制台驱动 中, 这里所谓的 escape 序列被用来移动光标, 改变缺省的颜色, 或者进行其他的配置任 务. 这样实现设备控制 ...

  2. Linux 内核PC/104 和 PC/104+

    当前在工业世界中, 2 个总线体系是非常时髦的: PC/104 和 PC/104+. 2 个在 PC-类 的 单板计算机中都是标准的. 2 个标准都是印刷电路板的特殊形式, 包括板互连的电子的/机械的 ...

  3. 2018-11-13-WPF-禁用实时触摸

    title author date CreateTime categories WPF 禁用实时触摸 lindexi 2018-11-13 10:45:37 +0800 2018-5-4 21:0:3 ...

  4. APK签名替换检测

    APK二次打包的危害 APK二次打包是Android应用安全风险中的一部分, 一般是通过反编译工具向应用中插入广告代码与相关配置,再在第三方应用市场.论坛发布.打包党对移动App带来的危害有以下几种: ...

  5. vue依赖

    ajax:vue-resource moke数据:body-parser

  6. error:cannot load file (code:5555h);bootauto.ini

    最近发现有的网友在使用Ghost XP盘安装系统的时候,选择一键ghost到C盘出现下面的错误: error:cannot load file (code:5555h);bootauto.ini(或b ...

  7. ES6类的继承

    ES6 引入了关键字class来定义一个类,constructor是构造方法,this代表实例对象. constructor相当于python的init 而this 则相当于self 类之间通过ext ...

  8. java agent技术原理及简单实现

    注:本文定义-在函数执行前后增加对应的逻辑的操作统称为MOCK 1.引子 在某天与QA同学进行沟通时,发现QA同学有针对某个方法调用时,有让该方法停止一段时间的需求,我对这部分的功能实现非常好奇,因此 ...

  9. 本地安装配置Gradle及IDEA使用本地Gradle

    一.下载Gradle   下载地址:http://services.gradle.org/distributions/   下载版本的bin.zip 二.配置环境变量 三.验证   在cmd模式下查看 ...

  10. 《Java开发学习大纲文档》V8.0

    <Java开发学习大纲文档>V8.0 第八版是以实战作为核心,同时也包含前面所有版本的精华部分,第八版加入的部分有云开发(阿里云OSS存储.(github)gitlab+docker网站自 ...