前不久把自己无聊时候写的采集程序贡献了出来,没想到反响还不错,不过可能我写的不是很清楚,让大家在采集中遇到了各类问题,这次说一下如何来配置采集项目,以及如何采集入库等。请到“MyCollection 程序 F&Q”,我会回答采集程序的相关问题。
如果你第一次看,可以先看下“ 自己做的一个小程序 可采集、导出、模板、配置 ”
程序做的很简单,配置也都是按照以往看到的一些采集程序结合自己的需求来做的,配置方面分为了:程序配置和采集项目配置。
程序配置只是简单的一些系统需求参数,点击设置采集参数,会弹出如下设置项:
(刚发觉Form Title都没有改过。。。哈哈)
分别说说
图片保存地址:采集过程中目标网站的采集到的缩略图(我这里是商品的缩略图)目录
数据导出地址:选中项目的导出文件地址(也就是把采集的数据转换成淘宝助手所支持的格式,然后保存到此设置目录,文件名为:项目名 + “.cvs”)
宝贝模板地址:简单来说就是一个页面的模板,你可以设置空模板,也可以弄的漂亮点,套上去,页面的例子忘记了,大家可以看代码,也就replace XX的,没什么大花头。
程序配置就这些,非常简单,接下来重点说下采集项目的配置。
点击添加采集项目,进入到配置窗口:
大大一个框,Title 和 按钮文本都没有修改,惭愧惭愧。我们分拆开来说,同时举例说明一下:
项目名称:XXXX 显示在列表中的名称,生成文件会按项目名称来。这里以http://movie.taogame.com/List.asp?ClassId=2为例(我自己的电影站,免费的哦)
列表页配置:
地址:列表页地址(也就是采集的入口点) 这里输入:http://movie.taogame.com/List.asp?ClassId=2
UTF8:如果是UTF8编码的,请勾选此框,默认为GB2312 因为范例页面为GB2312,所有不勾选
列表开始 & 列表结束 : 确定一个区域出来,至少里面包含了你要采集的内容链接列表。
右键-查看源代码,找到相应的列表开始处&结尾处
开始处:
结尾处:
范围大小没有关系,不过一定要唯一,这样才能采集到。此例中填写如下:
列表开始:
<h3>当前位置:<span><a href=”/”>首页</a> >> 综艺片</span></h3> <ul> <li>
这里请注意,不要去掉换行、空格等,否则不能匹配到。
还有要注意,单引号、双引号都需要的。
列表结束:
</ul> </div> <div id="page" class="bord mtop">共110页 1309部 页次:1/110页 首页 上一页
链接开始&结束:因为链接会有很多项,所以我们先前确定了区域,那样可以更好的匹配链接。配置链接的时候,要注意,采集到的链接一定不要重复,因为在列表中,可能一个链接会重复几次,我们只需要一次。
本例中,相关代码:
链接开始:
<li><a href=" |
---|
链接结束:
" class="img" |
---|
后面的配置,其实跟列表页都一样,只要唯一匹配就可以,当然,因为是内容页配置,你必须先打开一个内容页,查看源代码,然后再进行配置,本例中:
<title> |
---|
标题开始
</title> |
---|
标题结束
<div class="bord mtop"> |
---|
介绍开始
</div> <div class="bord mtop cen con"> |
---|
介绍结束
img class="img" src=" |
---|
图片开始
" alt=" |
---|
图片结束
<meta http-equiv="Content-Type" content="text/html; charset=gb |
---|
价格开始(因为这是电影,没有价格,所以我随便设的,程序没有容错机制,为了演示,随便找了个数字)
" /> |
---|
价格结束
好了,都配置完以后,点击那个开始采集(其实应该是保存设置),到主窗口后,请选中此采集项目,然后点击开始采集:
好了,如果配置正确的话,采集将顺利进行,查看一下结果画面:
就这么简单,配置完成了,接下来看看数据吧。点击“显示项目数据”按钮(请注意,一定要在GridView中选中项),如图:
看看我们的详细内容采集如何:
Ok,比较顺利,不过介绍好像多了点内容,这个大家可以自己进行配置一下:)
说的比较乱,不过很简单的,相信大家肯定会明白的,不明白的请到“ MyCollection 程序 F&Q ”,我会为大家解答。
程序的思路:现在的网站,大多都是列表 -> 内容 (文章、下载、商品)这种形式,所以采用列表页作为采集入口,随后使用了唯一匹配和正则匹配,把要采集数据的链接一一获取,通过Foreach方式,进行单独采集。内容页也通过唯一匹配进行属性赋值,然后存入数据库。
简单的思路,也没什么复杂,目前不支持分页,不支持很多东西,大家可以一起来扩展一下,我准备放到CodePlex中玩玩。
PS:这个采集的小程序,我决定重新写一遍,利用现在学到的来实践一下,想用WPF,用了一半发觉自己的艺术细胞实在太差了,用和不用一个样。。。傻了傻了。
PS2:上周六写的关于dynamic的东东,写的太烂了,米什么人看,原本打算可以使用dynamic来动态加载类型,深入后,发觉好像很难做到,现在有点僵了。