下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、火车采集器插件开发手册1. 火车采集器插件使用C#语言开发,用户开发时需要引用Release目录下的super.dll和AppInerFace.dll 两个类库 即可。开发的插件需要实现ILocoySpider和ISuperJob 两个接口,程序在运行时会加载并执行插件程序集中的方法。插件的开发细节请查看开发示例。2. 开发插件时需要注意以下几个方法A.程序集的目标Framework 为 .Net Framework 2.0B.程序集的目标平台为x86C.插件开发完成后,除插件文本本身外,其它引用的dll文件需要放在采集器的System目录下。本程序引用的 super.dll和AppInerF
2、ace.dll 文件程序已自带并加密,不需要复制。复制会引起程序运行错误。我们从接口的源码中解析一下插件中需要实现的各个方法和属性的功能和使用的位置:using System;using System.Collections.Generic;using System.Text;namespace LeWell.Api / / 火车采集器采网址,保存内容时的插件 / public interface ILocoySpider / / 是否处理起始网址,如果是,则调用MakeStartAddress方法,对每个起始网址再进行处理 / bool UseMakeStartAddress get; /
3、/ 对起始网址进行处理,即通过每个起始网址生成一个或多个网址链接,并将最终生成的网址做为起始网址。注意这里的起始网址是采集器对起始规则进行解析后生成的新的起始网址。比如我们从生成的真实的递增网址中再生成新的网址。 / / 单个的起始网址 / 浏览器user-agent / 来源页 / 网页cookie / 如果UseMakeStartAddress,请直接返回空List或null List MakeStartAddress(string urlData,string useragent,string refer,System.Net.CookieCollection cookie); / /
4、在请求多级网址前更改http请求,处理的是多级网址请求时的Request对象,可以修改user-agent,Cookie等属性。可以通过此功能,开发自动登录等功能。 / / http请求对像 void ChangeStepRequest(ref System.Net.HttpWebRequest request); / / 在多级网址http请求完成后得到的html代码,再用该方法进行处理,处理完的html采集器再去提取下一级的网址或标签。如果不做任何修改,直接返回html. / / 当前页网址 / 当前代码 / 请求的header / 返回的header / 如果不修改html代码,请直接返
5、回html string ChangeStepHtml(string pageurl, string html, System.Net.WebHeaderCollection request, System.Net.WebHeaderCollection response); / / 是否使用插件来获取多级网址,使用True后默认的提取网址规则将无效,用户需使用GetStepUrls方法获取网址,这个方便用户写插件直接生成网址链接 / bool UseGetStepUrls get; / / 当UseGetStepUrls=true时,可以通过该方法获取多级网页地址和自定义标签。注意每个返回结
6、果中的Dictionary中的标签键名和数量要一样 / / 网页源代码,是插件处理过的 / 网址提取区域开始 / 网址提取区域结束 / 自定义网址规则样式 / 自定义组合网址 / 网址中包含 / 网址中不得包含 / 多个网址和标签的集合,每个KeyValuePair中包含一个网址,对应的dic是标签,如果UseGetStepUrls是True,直接返回null即可 ListKeyValuePairstring,Dictionary GetStepUrls(string html, string areaStart, string areaEnd, string urlStyle, string
7、 urlCombine,string allow,string forbidden); / / 对火车采集器最终采集的结果字符串进行再处理,注意这时文件已下载完成,处理完该字符串后,程序会再进行一个包含和不得包含的判断处理,看结果是否需要保留,然后数据将保存到本地数据库或发布。如果您不需要某条记录了,只需要设置该记录不得为空,然后用插件将这个标签的值设置为空,即可以在实际采集中过滤掉这条记录。 / / void ChangeResultDic(Dictionary dic); / / 当UseChangeSaveFiles=true时,可以对还没有下载前的文件进行修改,在这里可以修改文件保存的
8、地址和替换地址,也可以修改每个标签的返回值,这个操作在ChangeResultDic方法之前执行。这个功能可以方便我们对下载的文件进行重命名。需要注意的是,修改文件的名称后,标签中的地址也要修改。开发人员要做的,就是修改fieldandfiles和dic。 / / 该字段的结构为标签名,(真实下载地址,文件保存地址和替换地址)。注意,这里的真实下载地址不能修改,也不能添加新的下载地址。 / 标签名和html值 void ChangeSaveFiles(Dictionarystring, Dictionarystring, KeyValuePair fieldandfiles,Dictionar
9、y dic); / / 是否启用修改保存文件,启用户将调用ChangeSaveFiles方法对下载的文件名及标签进行处理 / bool UseChangeSaveFiles get; / / 任务完成后在界面上提示什么信息,如果什么也不提示返回null即可。用户可以在该方法中做一些统计,数据清理等工作。 / / 是否手动停止 / 任务名 / 任务id / 采网址成功条数 / 采内容成功条数 / 发内容成功条数 / 任务的变量 / 需要在界面上显示的文字,null或空不显示 string EndJob(bool handstop,string jobname,string jobid, int
10、url,int content,int post,object job); / / 开始运行任务时在界面上的提示,在该方法中可以做额外的一些检查,并将结果显示在任务运行界面上。 / / 需要在界面上显示的字,null或空不显示 string StartJob(); using System;using System.Collections.Generic;using System.Text;namespace LeWell.Api / / 采集器采内容使用的插件 / public interface ISuperJob : ICloneable, IDisposable / / 采内容时是否对
11、http请求进行修改 / bool UseChangeWebRequest get; / / 当UseChangeWebRequest=true时, 修改采内容时http请求的一些信息。该方法发生在默认页和每个多页,要由 level 判断当前是哪个页面。 / / 当前的层数,从0开始 / http请求 void ChangeWebRequest(int level, ref System.Net.HttpWebRequest request); / / 对每个页面http请求后下载的原始的html代码进行处理,插件对该html代码处理完成后,采集器才使用规则提取功能提取内容。 / /当前的层数
12、,从0开始 / 当前页源代码 / 当前源代码对应的http请求header / 当前源代码对应的返回的http请求header / 当前页网址 / 如果不需要修改代码,请直接返回originalHtml string ChangeHtml(int level, string originalHtml, System.Net.WebHeaderCollection request, System.Net.WebHeaderCollection response, string pageurl); / / 对每一个页面采集的结果进行处理,需要注意的是dic是一个标签名,多个内容,如用户设置了循环采
13、集,这里的list就可能有多个值. / / 当前的多页的层数,从0开始 / 采集器处理后的键值对 / 当前页网址 / 当前页源代码,是插件处理过的 void ChangeArticle(int level,Dictionarystring, List dic, string pageurl, string html); / / 是否使用插件得到分页,如果是,将调用GetPagesUrl方法直接获取到分页地址。需要注意的是,可以一次将所有分页地址获取,也可以每次只获取部分分页地址。因为每个分页是会再次获取分页地址的,所以请用户自己判断传入的pageurl决定是否生成分页地址 / bool Use
14、GetPagesUrl get; / / 当UseGetPagesUrl=true时,获取分页的地址 / / 当前的层数,从0开始 / 当前页网址 / 当前页源代码,插件处理过的 / 分页链接地址样式 / 分页组合网址 / List GetPagesUrl(int level,string pageurl, string html, string pagesStyle, string pagesCombine); / / 是否使用插件获取多页地址,如果启用,将调用GetMultPageUrl分别对每个多页规则进行提取多页地址操作。 / bool UseGetMultPageUrl get; / / 当UseGetMu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 22396-2026压敏胶粘制品术语
- 2026广东广州市越秀区登峰街道办事处招聘合同制工作人员1人考试备考题库及答案解析
- 2026山东大学齐鲁第二医院生殖医学科技师岗位(劳务派遣)招聘4人考试备考试题及答案解析
- 2026上海复旦大学附属妇产科医院招聘心电图室技术员1人考试备考题库及答案解析
- 2026陕西西安交通大学第一附属医院涉外病房(一)招聘派遣制助理医生考试参考试题及答案解析
- 2026浙江工业大学附属实验学校诚聘食堂工作人员1人(非事业)考试备考题库及答案解析
- 2026江西南昌红谷滩区临江第二幼儿园招聘带班教师2人笔试模拟试题及答案解析
- 2026西安市经开第一中学招聘笔试模拟试题及答案解析
- 2026年度伊春职业学院附属幼儿园公开招聘5人考试参考试题及答案解析
- 2026年客户关系管理(CRM)项目评估报告
- 北京市石景山区2025-2026学年第一学期高三年级期末考试试卷英语试卷+答案
- 金矿天井施工方案(3篇)
- 2026年山东交通职业学院单招综合素质考试备考题库带答案解析
- 泵房档案管理制度范本
- T-CEPPEA 5045-2024燃煤电厂贮灰场环境保护与生态修复工程技术规范
- 市政公用工程设计文件编制深度规定(2025年版)
- 长期护理保险信息管理制度范本
- 警车驾驶安全培训讲话稿课件
- 标准羽毛球场地建设指南
- 银行要求公转私合同范本
- 中国兽药典三部 2020年版
评论
0/150
提交评论