图片采集,你懂的~

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;
}
}
}
...全文
1002 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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/ 具体安装操作,压缩包里有详细教程 不用担心 一般人都能看 除非你,,,你的! 更多功能请自己体验

111,097

社区成员

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

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

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