网页结构化数据抓取

结构化数据抓取的要求:

1、支持对表格数据的抓取,并且定义抓取规则简单

2、支持对分页数据抓取

3、支持对数据有效性的验证,并能定义默认值

4、支持对数据的排重

5、支持对代码字典表的映射

 

基于上述要求开发了一款基于XPath和正则表达式的结构化数据抓取软件

优点:

1.       基于XPath搜索定位。使用XPath强大的语法定义,可以使用方便简单的语句即可在网页中定位到所需要的元素;

2.       支持基于正则表达式的强大识别功能,可以使用简单的语句即可识别你所关心的内容,同时还对扩充了对匹配输出的定义。

3.       支持基于正则表达式的替换功能,可以在一个语句中定义多个替换;

4.       容错功能,对于没有提取的数据项,可以使用默认值代替;

5.       支持完整的结构化数据采集,所有采集定义都是基于数据项,有完整的数据记录提取功能,并提供数据映射和排重功能;

6.       支持多种数据库,SqlServerAccess等;

7.       自动创建抓取任务,数据项提取的Url可以定义是否继续抓取,同时你可以指定抓取方案;

8.       支持多页抓取,对于需要回传到服务器才能访问的网页,支持表单提交;

9.       一个任务在一个线程,最大限度使用网络资源;

提供强大的定时控制功能,在网络空闲时段采集数据,在繁忙时段自动暂停;例如:可以定义一个任务工作1分钟暂停1分钟;一个任务工作另一个任务暂停,交替工作;在2412345678点工作,其它时间暂停;

 

联系QQ:631374337

下面是配置文件片断:

<Schecma Name="采集公司" Code="51Job_Company">
        <DataRecords>
          <DataRecord Name="" StorageName="tblCompany">
            <!--公司名称-->
            <DataItem>
              <Name>公司名称</Name>
              <FieldName>nvcName</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/table[1]/tr[1]/td[1]]]></XPath>
              <Filter><![CDATA[([/w/d()()]*)&nbsp;&nbsp;$1]]></Filter>
              <DuplicateCheck>True</DuplicateCheck>
            </DataItem>
            <!--公司行业-->
            <DataItem>
              <Name>公司行业</Name>
              <FieldName>iIndustryCategory</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/table[1]/tr[2]/td[1]]]></XPath>
              <Filter><![CDATA[公司行业:</strong>&nbsp;&nbsp;([/w/d/,,()()]*)[<&]?$1]]></Filter>
              <DuplicateCheck>True</DuplicateCheck>
              <Mapping>True</Mapping>
              <MappingCode>IN</MappingCode>
            </DataItem>
            <!--公司性质-->
            <DataItem>
              <Name>公司性质</Name>
              <FieldName>iCompanyProperty</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/table[1]/tr[2]/td[1]]]></XPath>
              <Filter><![CDATA[公司性质:</strong>&nbsp;&nbsp;([/w/d/()]*)<br>$1]]></Filter>
              <DuplicateCheck>True</DuplicateCheck>
              <IgoneAllError>True</IgoneAllError>
              <Mapping>True</Mapping>
              <MappingCode>CT</MappingCode>
              <DefaultValue>80</DefaultValue>
            </DataItem>
            <!--公司简介-->
            <DataItem>
              <Name>公司简介</Name>
              <FieldName>nvcIntroduction</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/div[@class="jobs_com"]/div[@class="grayline"]/div[@class="jobs_txt"]/p[1]]]></XPath>
              <Replacement><![CDATA[<[/]?[^>]*>->;;]]></Replacement>
            </DataItem>
            <!--公司规模-->
            <DataItem>
              <Name>公司规模</Name>
              <FieldName>nvcScale</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/table[1]/tr[2]/td[1]]]></XPath>
              <Filter><![CDATA[公司规模:</strong>&nbsp;&nbsp;([/w/d/]*)$1]]></Filter>
              <IgoneFilteError>False</IgoneFilteError>
              <DefaultValue></DefaultValue>
            </DataItem>
            <!--公司网址-->
            <DataItem>
              <Name>公司网址</Name>
              <FieldName>nvcUrl</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/div[1]/div[2]/div[1]]]></XPath>
              <Filter><![CDATA[公司网站:<a href="([/w/d;:,//.]*)"$1]]></Filter>
              <IgoneFilteError>False</IgoneFilteError>
              <DefaultValue></DefaultValue>
            </DataItem>
            <!--公司地址-->
            <DataItem>
              <Name>公司地址</Name>
              <FieldName>nvcAddress</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/div[1]/div[2]/div[1]]]></XPath>
              <Filter><![CDATA[地&nbsp;&nbsp;&nbsp;&nbsp;址:([/w/d,、/-/s]*)[&<]+$1]]></Filter>
              <IgoneFilteError>False</IgoneFilteError>
              <DefaultValue></DefaultValue>
            </DataItem>
            <!--邮编-->
            <DataItem>
              <Name>邮编</Name>
              <FieldName>nvcPostcode</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/div[1]/div[2]/div[1]]]></XPath>
              <Filter><![CDATA[邮政编码:([/w/d,、/-/s]*)[&<]+$1]]></Filter>
              <IgoneFilteError>False</IgoneFilteError>
              <DefaultValue></DefaultValue>
            </DataItem>
            <!--传真-->
            <DataItem>
              <Name>传真</Name>
              <FieldName>nvcFax</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/div[1]/div[2]/div[1]]]></XPath>
              <Filter><![CDATA[传(&nbsp;)*真:([/w/d,、/-()/s]*)[&<]+$2]]></Filter>
              <IgoneFilteError>False</IgoneFilteError>
              <DefaultValue></DefaultValue>
            </DataItem>
            <!--联系人-->
            <DataItem>
              <Name>联系人</Name>
              <FieldName>nvcContact</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/div[1]/div[2]/div[1]]]></XPath>
              <Filter><![CDATA[联(&nbsp;)*系(&nbsp;)*人:([/w/d,、/-/s]*)[&<]+$3]]></Filter>
              <IgoneFilteError>False</IgoneFilteError>
              <DefaultValue></DefaultValue>
            </DataItem>
            <!--电话-->
            <DataItem>
              <Name>电话</Name>
              <FieldName>nvcTel</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/div[1]/div[2]/div[1]]]></XPath>
              <Filter><![CDATA[电(&nbsp;)*话:([/w/d,、/-/s()]*)[&<]+$2]]></Filter>
              <IgoneFilteError>False</IgoneFilteError>
              <DefaultValue></DefaultValue>
            </DataItem>
            <!--邮箱-->
            <DataItem>
              <Name>邮箱</Name>
              <FieldName>nvcEmail</FieldName>
              <XPath><![CDATA[//div[@class="s_txt_jobs"]/div[1]/div[2]/div[1]]]></XPath>
              <Filter><![CDATA[>(/w+/d*@[/w/d.]*)<$1]]></Filter>
              <IgoneFilteError>False</IgoneFilteError>
              <DefaultValue></DefaultValue>
            </DataItem>
            <!--来源-->
            <DataItem>
              <Name>来源</Name>
              <FieldName>iSource</FieldName>
              <IgoneAllError>true</IgoneAllError>
              <DefaultValue>10</DefaultValue>
            </DataItem>
          </DataRecord>
        </DataRecords>
      </Schecma>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值