图片采集,你懂的~

tecnology 2012-04-22 09:59:12
string ListUrl = "http://XXXX.cc/html/yazhou/index{0}.html";
System.Net.WebClient wc = new System.Net.WebClient();
HtmlAgilityPack.HtmlDocument listdoc = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlNode listbody=null;

HtmlAgilityPack.HtmlDocument cotentdoc = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlNode cotentbody = null;
for (int i = 1; i <= 33; i++)
{
string tempList = string.Format(ListUrl, i == 1 ? "" : i.ToString());
string htmlStr = wc.DownloadString(tempList);
if (htmlStr == null) continue;
listdoc.LoadHtml(htmlStr);
listbody = listdoc.DocumentNode;
HtmlAgilityPack.HtmlNodeCollection lists = listbody.SelectNodes("//div/ul/li");
foreach (HtmlNode list in lists)
{
var listname = list.SelectSingleNode("./a").Attributes["title"].Value;
var contenturl = "http://XXXX.cc/" + list.SelectSingleNode("./a").Attributes["href"].Value;

try
{
int end = 1;
int tonum=1;
for (int m = 1; m <= end; m++)
{

string willdir = @"D:\temp\1\" + listname;
string contentHtml = null;

if (m == 2)
{
contenturl = contenturl.Substring(0, contenturl.LastIndexOf(".htm")) + "_{0}.htm";
}
if (m >= 2)
{
contentHtml = wc.DownloadString(string.Format(contenturl, m.ToString()));
}
else
{
contentHtml = wc.DownloadString(contenturl);
}
cotentdoc.LoadHtml(contentHtml);
if (cotentdoc == null) continue;
cotentbody = cotentdoc.DocumentNode;
if (m == 1)
{
end = int.Parse(cotentbody.SelectSingleNode("//div[@class='pp']/font[@color='red']").InnerHtml.Trim());
System.IO.Directory.CreateDirectory(willdir);
}
var contentlists = cotentbody.SelectNodes("//div[@class='pp']//img");
foreach( var n in contentlists)
{
var picname = n.Attributes["src"].Value;
wc.DownloadFile(picname, willdir + "\\" + tonum.ToString() + ".jpg");
tonum++;
}
}
}
catch
{
continue;
}
}
}
...全文
983 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yy2013666 2012-12-04
  • 打赏
  • 举报
回复
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using HtmlAgilityPack; using System.Threading; using System.Collections; namespace AutoPicDownLoad { 应用我的http://www.ymrt.net不知是否可以?
tecnology 2012-05-05
  • 打赏
  • 举报
回复
需下载HtmlAgilityPack 第三方DLL~
tecnology 2012-05-05
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using HtmlAgilityPack;
using System.Threading;
using System.Collections;
namespace AutoPicDownLoad
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
bk.DoWork += new DoWorkEventHandler(bk_DoWork);
bk.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bk_RunWorkerCompleted);
bk.WorkerSupportsCancellation = true;
}
BackgroundWorker bk = new BackgroundWorker();
public static object wobj = new object();
void bk_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.Close();
}
static void PooledFunc(object state)
{
AutoResetEvent are = (AutoResetEvent)state;
System.Net.WebClient wc = new System.Net.WebClient();
HtmlAgilityPack.HtmlDocument listdoc = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlNode listbody = null;
HtmlAgilityPack.HtmlDocument cotentdoc = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlNode cotentbody = null;
string ListUrl = GetListUrl;
if (ListUrl == null)
{
are.Set();
return;
}
string htmlStr = wc.DownloadString(ListUrl.ToString());
if (htmlStr == null)
{
are.Set();
return;
}
listdoc.LoadHtml(htmlStr);
listbody = listdoc.DocumentNode;
HtmlAgilityPack.HtmlNodeCollection lists = listbody.SelectNodes("//div/ul/li");
foreach (HtmlNode list in lists)
{
var listname = list.SelectSingleNode("./a").Attributes["title"].Value;
var contenturl = "http://ccrt.cc" + list.SelectSingleNode("./a").Attributes["href"].Value;
try
{
int end = 1;
int tonum = 1;
for (int m = 1; m <= end; m++)
{

string willdir = @"D:\temp\1\" + listname;
string contentHtml = null;
if (m == 2)
{
contenturl = contenturl.Substring(0, contenturl.LastIndexOf(".htm")) + "_{0}.htm";
}
string tempContentUrl = string.Format(contenturl, m.ToString());
if (m >= 2)
{
contentHtml = wc.DownloadString(tempContentUrl);
}
else
{
contentHtml = wc.DownloadString(contenturl);
}
cotentdoc.LoadHtml(contentHtml);
if (cotentdoc == null) continue;
cotentbody = cotentdoc.DocumentNode;
if (m == 1)
{
end = int.Parse(cotentbody.SelectSingleNode("//div[@class='pp']/font[@color='red']").InnerHtml.Trim());
System.IO.Directory.CreateDirectory(willdir);
}
var contentlists = cotentbody.SelectNodes("//div[@class='pp']//img");
foreach (var n in contentlists)
{
var picname = n.Attributes["src"].Value;
if (System.IO.File.Exists(willdir + "\\" + tonum.ToString() + ".jpg"))
{
tonum++;
continue;
}
wc.DownloadFile(picname, willdir + "\\" + tonum.ToString() + ".jpg");
tonum++;
}
}
}
catch
{
continue;
}
finally
{
}
}
are.Set();
}
//开启5个线程分别下载
static WaitHandle[] waitHandles = new WaitHandle[5] { new AutoResetEvent(false), new AutoResetEvent(false), new AutoResetEvent(false), new AutoResetEvent(false), new AutoResetEvent(false) };
static System.Collections.Queue q = new System.Collections.Queue();
public static object obj = new object();
public static string GetListUrl
{
get
{
if (q.Count > 0)
{
lock (obj)
{
if (q.Count > 0)
{
return q.Dequeue().ToString();
}
}
}
return null;
}
}
void bk_DoWork(object sender, DoWorkEventArgs e)
{

string ListUrl = "http://ccrt.cc/html/yazhou/index{0}.html";
for (int i = 17; i <= 33; i++)//i=4 列表第四页
{
string tempList = string.Format(ListUrl.ToString(), i == 1 ? "" : i.ToString());
q.Enqueue(tempList);
}
WaitCallback callBack = new WaitCallback(PooledFunc);
while (q.Count != 0)
{
WriteLine("线程池开始"+q.Count.ToString());
for (int ccc = 0; ccc < waitHandles.Length; ccc++)
{
ThreadPool.QueueUserWorkItem(callBack, waitHandles[ccc]);
}
WaitHandle.WaitAll(waitHandles);
WriteLine("线程池结束"+q.Count.ToString());
}
}
public void WriteLine(string line)
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"D:\temp\info.log"))
{
sw.WriteLine(line);
}
}
private void btnStart_Click(object sender, EventArgs e)
{
this.btnStart.Enabled=false;
bk.RunWorkerAsync();
}
}
}


nvshenxp 2012-04-23
  • 打赏
  • 举报
回复
菜鸟路过,这个真不懂。。。
在坚持几年 2012-04-23
  • 打赏
  • 举报
回复
lists对象为null
在坚持几年 2012-04-23
  • 打赏
  • 举报
回复
啥玩意呀,报错
LOVE_GG 2012-04-23
  • 打赏
  • 举报
回复
lz,你这个帖子发得.....
tecnology 2012-04-22
  • 打赏
  • 举报
回复
如果弄成多线程的会更好吧。呵呵
pmars 2012-04-22
  • 打赏
  • 举报
回复
what are you doing?
提示: 右键单击程序标题栏可以查看更多功能或设置 标题栏菜单--帮助--程序更新 可以随时下载最新版本 特殊说明: 关于libeay32.dll、ssleay32.dll 这两个文件,OpenSSL Library 是开源的库, 网上到处都可以下载,很多软件都自带这些库,本软件自带的版本是1.0.0.7, 鉴于极个别电脑可能没有安装这些库,所以都打包在一起,防止不能用。 部分杀软可能会误报毒,请将本地病毒库升级到最新;一般升级病毒库后就不会报毒了。 如果大家不放心,可以自行到网上搜索并下载这两个dll文件(一般是0.9.0.*版本的), 安装到system32系统文件夹(或者程序根目录)里,原则上0.9.0.*版本的也可以使用。 功能介绍: 1,淘图宝是一款功能强大的产品详情页图片下载工具,可以帮助店家轻松下载别的店铺的产品图片,如主图、详细页面图,颜色图等。 该软件支持提取采集1688、淘宝、天猫、聚划算、速卖通、蘑菇街、美丽说等宝贝产品图片。 A 为方便淘宝宝贝上架、photoshop操作,下载的图片会下载到 桌面\DPicture 文件夹 B 双击列表可以在浏览器中查看任意图片的网址链接 2,下载完毕后,即可一键批量生成符合手机详情页要求的图片,一键生成,高效快捷.长图能智能切割,省时省力 A 生成的图片质量能任意调节, B 生成的图片清晰度,效果绝非淘宝上的收费插件能比,高质量、高清晰度的手机详情图片可以提高您店铺的转换率 C jpg、jpeg、gif、bmp、png 等网络常用格式的图片均支持直接转换成手机详情页图片,宽度可调 3,软件无需安装,解压后即可运行试用,绿色环保不写注册表,不想使用时直接删除文件夹即可,不留一点痕迹。 4,独特软件内核。即使频繁下载服务器有限制,也不需要重启电脑、重启路由器、清空浏览器COOKIES等无脑式的操作。 5,支持32位与64位的 Windows XP,Vista,7,8,10 (完美支持最新的Win10系统) 常见问题: 1,软件支持生成数据包吗?为什么没有这样的功能? 本软件不支持生成数据包,因为对于如今的淘宝来说,用数据包直接上传宝贝的情形已经是过去式了, (但凡认真做过淘宝的店主,都应该明白这个道理,直接用数据包上传宝贝会有什么样的后果和麻烦,三个字:你的!~) 本软件旨在将详情页的图片快速提取并下载到本地电脑,以节约大家的宝贵时间,这样大家有更多的时间来处理原图。 所以本软件没有这种无用的功能。 2,软件有批量添加水印的功能吗? 没有,道理同上。 3,注册后,功能还会有限制吗? 注册后,功能没有任何限制,您可以使用本软件的所有功能, 4,软件可以提取那些行业的图片? 软件不限行业,指定格式的详情页网址均能有效提取。 更新摘要: 1,登录方式以及程序界面做了调整,程序更加稳定快捷 2,增加拍拍产品详情页图片批量下载的功能 3,修复速卖通产品提取的一处BUG 4,增加配置文件,程序更加易用 5,完美支持最新的Win10系统(32位与64位均支持), 6,增加美丽说、蘑菇街产品详情页图片批量下载的功能 7,为方便操作,设置面板加入了窗体置顶的功能 8,图片处理重新作了布局,可以自定义需要转换的输入、输出文件夹的路径,支持文件夹拖拽 9,标题栏添加了版本号,方便大家更新 10,让窗口置顶功能更加灵活方便
功能简介: 1 商品管理 后台添加商品 修改商品 删除商品 搜索商品 搜索商品增加商品ID搜索 按推广日期搜索 分类搜索 频道搜索 批量删除过期商品 显示过期商品列表可选择重新上架或批量删除 商品列表增加自定义排序功能 2 采集商品 输入商品ID一键获取商品信息 可从五张商品主图中选择一张作为活动图片 商品可设置到指定推荐位 指定规类为某个频道 可设置开始时间与结束时间 今日开始商品为今日新品 明日开始时间的商品为明日预告 3 报名商品 前台报名 包括 免费白拿抽奖程序报名及普通活动商品报名及主题活动报名 后台审核商品增加拒绝留言 前台商家查询商品时 可显示拒绝原因是什么 4 搜索商品 批量搜索淘宝关键字 店铺类型 关键字 排序方式 店铺信用等级 商品佣金 商品折扣 入库分类 入库频道 或类目下的商品列表 可 提取到商品某分类数据库 此功能需淘宝客APPKEY等级限制 5 品牌打折活动 可添加活动 可设置品牌LOGO 活动图片 活动链接 可链接至商品店铺或设计专题活动页面 6 诊断商品 诊断目前促销日期内商品是否下架及价格是否一至 下架商品会自动列入过期商品 价格不一至商品会以列表形式显示供站长可删除操作 7 文章管理 可添加文章 修改文章 删除文章 9 推荐位管理 可在网页中任意区域创建推荐位 把指定商品推荐在此区域展示 推荐位类型分为文章推荐位 商品推荐位 店铺推荐位 10 分类管理 可设置大类 小类 及类目关键词TAG 添加分类 修改分类 删除分类 11 频道管理 可把某个特性的商品规为一类 可放入频道中 比如所有分类下的9 9包邮商品 或所有韩版商品统一放入某个频道 频道可添加修改删除 12 站长友链管理 13 整个店铺推广 演示地址:http: jialeyuan uz taobao com 具体安装操作 压缩包里有详细教程 不用担心 一般人都能看 除非你 你的 更多功能请自己体验">功能简介: 1 商品管理 后台添加商品 修改商品 删除商品 搜索商品 搜索商品增加商品ID搜索 按推广日期搜索 分类搜索 频道搜索 批量删除过期商品 显示过期商品列表可选择重新上架或批量删除 商品 [更多]
功能简介: 1、商品管理 后台添加商品、修改商品、删除商品、搜索商品,搜索商品增加商品ID搜索,按推广日期搜索,分类搜索,频道搜索。 批量删除过期商品,显示过期商品列表可选择重新上架或批量删除。 商品列表增加自定义排序功能。 2、采集商品 输入商品ID一键获取商品信息,可从五张商品主图中选择一张作为活动图片。商品可设置到指定推荐位。指定规类为某个频道。 可设置开始时间与结束时间。 今日开始商品为今日新品,明日开始时间的商品为明日预告。 3、报名商品 前台报名,包括(免费白拿抽奖程序报名及普通活动商品报名及主题活动报名),后台审核商品增加拒绝留言。前台商家查询商品时 可显示拒绝原因是什么。 4、搜索商品 批量搜索淘宝关键字(店铺类型、关键字、排序方式、店铺信用等级、商品佣金、商品折扣、入库分类、入库频道)或类目下的商品列表,可 提取到商品某分类数据库。此功能需淘宝客APPKEY等级限制。 5、品牌打折活动 可添加活动,可设置品牌LOGO,活动图片,活动链接,可链接至商品店铺或设计专题活动页面。 6、诊断商品 诊断目前促销日期内商品是否下架及价格是否一至。下架商品会自动列入过期商品。价格不一至商品会以列表形式显示供站长可删除操作。 7、文章管理 可添加文章、修改文章、删除文章、 9、推荐位管理 可在网页中任意区域创建推荐位,把指定商品推荐在此区域展示。推荐位类型分为文章推荐位,商品推荐位,店铺推荐位 10、分类管理 可设置大类、小类、及类目关键词TAG,添加分类,修改分类,删除分类 11、频道管理 可把某个特性的商品规为一类,可放入频道中。比如所有分类下的9.9包邮商品。或所有韩版商品统一放入某个频道。频道可添加修改删除。 12、站长友链管理 13、整个店铺推广 演示地址:http://ch999.uz.taobao.com/ 具体安装操作,压缩包里有详细教程 不用担心 一般人都能看 除非你,,,你的! 更多功能请自己体验
一、什么是外卖通?    全诚外卖通是全诚团队继“全诚商城”之后以叫餐(预订)为核心的又一力作,或者称之为“特色店铺系统”,系统是基于.net2.0 SQL构架、B/s框架的多用户店铺管理系统;外卖通的开发旨在以商家 和消费者为服务对象,借以二者相互依存的关系,以互动的形式成就全诚外卖通一个完善的WEB系统平台,在这个平台里,商家可以扩大销售、得到系统平台的形象宣传,让更多的消 费者以网络的形式认知商家的特色和存在;作为消费者,通过这个平台,可以获得更多有价值的消费信息和咨讯信息,从而在比较当中选择最适合自己的消费水准和满意商品,从而避免了盲目消 费所带来的消费上的心理不平衡感,随着INTERNET的普及和发展,人们的生活和网络关系越来越密切,外卖通有很强的环境适存性,是经营本地店铺平台的最佳选择!!! 二、全诚外卖通的几大特色:    1、系统性质:全诚外卖通为多用户版商家加盟系统!!集叫外卖和预订餐位为一体的多用性系统,既可餐到付款又可在线支付的集多种支付方式为一体的系统,同时还支持预付款交易!    2、生成HTML:系统整体生成HTML,有利的提高的系统的访问速度和被搜索引擎收录的概率!    3、模版化:系统前台显示主体以模版的形式存在,只要修改了相应的模版,系统风格即可改变    4、分销模式:系统支持五级分销模式,任何一个会员成为代理后,可发展无限下线通道!每个通道可获得下线五级会员的食单现金和积分提成!!会员可推荐自己的朋友到自己喜欢的商家叫餐或者预定,任何成功的交易        都将给你创造收入,并且你的下线会员推荐的人的成功交易您依旧可以获得现金和积分提成!一直延续到你的每个通道单线的下五级为止!    5、专题活动制作:平台的运行会不定期的举办各种活动,为配合平台的运作,系统可在线制作各种专题活动页面!    6、FLASH宣传画报制作:FLASH宣传画报主要是对商家进行的形象宣传。也是平台创收的一个有效途径,无须你FLASH制作,系统可在线制作各种FLASH宣传画报!    7、系统信息采集功能:信息资讯逐条添加是个很痛苦的事情,为方便用户批量添加资讯信息,系统设计了信息采集模块,设置好,一键搞定!!    8、手机短信功能:系统集成了短信功能,食单信息在第一时间以短信的形式发送给商家或者平台管理员,保证消费者叫餐不会发生时间上的延误!    9、虚拟奖励方式:针对会员,为增强系统的互动性,全诚外卖通设计了积分、代餐券、游戏币三种虚拟奖励方式,并且三种虚拟奖励方式可相互转化,积分可兑换精美礼品,代餐券可充当现金使用!    10、强大的积分功能:平台的积分功能是系统运行不可缺少的一部分,它一定程度上刺激了消费者参与的积极性,全诚外卖通设计了诸如:会员注册可获得积分、发表评论可获得积分、推荐会员加入可获得积分、推广可获        得积分、叫餐或者预定可获得积分、会员上传图片可获得积分、代理商可获得其下线的积分返现、会员还可通过玩积分游戏获得游戏币等众多的积分形式,积分可以兑换精美礼品!!    11、强大的代餐券功能:同积分一样,会员注册、发表评论、推荐会员、叫餐或者预定、代理商可获得其下线交易额一定比率的代餐券返现等获得代餐券通道,代餐券可充当现金使用    12、超强的自定义实现:全诚外卖通为迎合用户方便管理的需要,在系统设计上旨在体现人性化,系统各个模块都可通过自定义实现自有的个性设置,比如:系统导航菜可自由添加设置,积分、代餐券可分配多少、以及积        分、 代餐券、游戏币的兑换比率等都可以自行定义设置!    13、系统的互动性:系统设计商家评论、咨询、举报、收藏、专题活动评论、资讯评论、玩有奖游戏等互动模块,并且会员可通过这些互动模块获得应有的奖励,有力的增强了系统存在的粘性    14、营销和推广:全诚外卖通为配合用户的宣传和推广需要,系统设计了超强的营销和推广功能。会员可推荐别人加入、会员可以把广告图片放置到自己的站点上进行可回报性宣传推广;会员可把自己喜欢的商家通过            EMAIL方 式发送给好友,也可以通过复制代码放置到自己的BLOG上进行友情推广;系统还嵌入了收藏功能,会员可以把有用的商家和资讯信息添加到QQ标签、百度收藏夹....,上面谈到的分销模式更是平台运作宣传和        推广的得力手段!!!    15、系统的扩展性强:全诚外卖通以外卖为重点推出该系统,其实外卖通在整体设计和构架上能满足很多行业的需要,可扩展性相当强。比如在此基础上稍做变动就可以成为商品批发系统、或者成为个人主页系统、或者其        他行业的店铺管理系统...         16、完善的区域管理:全诚外卖通客观上要求店铺商家的准确定位,区域管理体系完善是系统的一大重点,在区域管理里面,区域终端,管理员可自定义每个区域是属于什么路口、什么楼宇、或者住宅小区!      17、完善的广告管理:广告是平台创收的主要途径之一,为方便用户广告管理,系统设计了丰富的广告管理内容,只要通过后台添加完成,前台即可展示广告!   三、外卖通系统构架说明:    1、全诚外卖通基于.net2.0 MsSQL开发而成,B/S框架,系统整体可分为四大部分:(1) 总站后台 (2) 前台 (3) 会员管理系统 (4) 商家管理系统    2、适用操作系统:windows 2000/2003/2008/xp/vista/7,linux,unix    3、脚本解释器:Microsoft .Net FrameWork 2.0或者以上版本    4、WEB服务器:Microsoft IIS5.0或者以上版本    5、数据库:Microsoft Sql Server 2000/2005/2008或者以上版本, 推荐使用SQL2000    6、空间大小:空间最少300M 数据库最少50M   四、如何使用:     步骤 1 - 安装     1.将系统文件上传到你的空间根目录下.           (1)不要将系统文件放在空间根目录下的一个文件夹内,要安装在根目录下!           (2)空间必须支持.net2.0,支持MSSQL2000才能保证系统正常运行           (3)如果是本地安装测试,你的电脑也要保证支持.net2.0,支持MSSQL2000,同时你的电脑要装上IIS5.0信息服务器软件;           (4).net2.0组件下载地址:http://download.pchome.net/development/developtools/translater/download-21850.html        步骤 2 - 安装数据库     1.上传完系统文件,请不要忘记在你的空间管理里面把default.html设置为默认首页     2.输入你的域名运行系统,系统会自动跳转到数据库安装界面,填写好数据库连接参数,安装数据库即可     3.数据库安装好,系统即可正常运行!!     4.后台登陆地址为:http://你的域名/admin/adlogin.aspx     注意:本地测试请使用http://127.0.0.1进行访问,不要使用http://localhost 6、联系我们:     (1) QQ:346573042 412247022     (2) EMAIL: wmtby2010@163.com     (3) 手机:(0)15666892912      或者直接到我们的官方网站进行查看         http://www.1wsoft.cn        http://www.1wsoft.cn/jiaocan/index.htm

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧