首页 > 代码库 > 新闻机制抓取

新闻机制抓取

1.由于项目需求,需要从特定的网站上抓取新闻,保存到本地的数据中,并且将程序打包成可运行jar,在windows自带的系统中,定时运行。

现将开放过程写出来,与大家分享。

开发前准备:

程序需要的jar

技术分享

2.抓取新闻的网站:是用配置文件的形式

新建配置文件:lmsp-snatch-dataconfig.xml:内容如下:

<?xml version="1.0" encoding="utf-8"?>
<!--
XML配置说明
id:编号, encoding:编码方式, preurl:url前缀, page:分页, size:总页数, include :是否包括当前url(0:不包括,1:包括)
name:描述
pattern: regex:抓取的正则表达式 group:配置组
catelog: 目录结构
datasave :保存文件参数, datatype:url后缀格式, datasavetype:文件保存方式, datasavepattern:保存匹配正则  默认保存为HTML文件

-->
<document>
    <datadefine id="1" encoding="gb2312" loop="0" initDays="5" preurl="http://www.linkstec.com/">
        <url page="1" include="1">http://www.linkstec.com/*</url> <!-- 新闻  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/zzyj/*</url> <!-- 中证研究  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/gszb/*</url> <!-- 中证研究  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/scyj/*</url> <!-- 市场研究  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/mjks/*</url> <!-- 名家看市  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/cbjj/*</url> <!-- 晨报精选  -->
        <url page="1" include="1">http://www.cs.com.cn/sylm/zjyl_1/*</url> <!-- 观点评论  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/tzpj/*</url> <!-- 投资评级  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/ggrp/*</url> <!-- 个股热评  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/gzqh/*</url> <!-- 股指期货  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/hyyj/*</url> <!-- 行业研究  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/sjjj/*</url> <!-- 数据·资金  -->
        <url page="1" include="1">http://www.cs.com.cn/gppd/bgdt/*</url> <!-- B股动态  -->
        <urlfilter timepos="8-16">[0-9]{6}/t[0-9]{8}</urlfilter>
        <notfound>对不起,您要访问的页面暂时没有找到</notfound>
        <prefix>index_</prefix>
        <suffix>.html</suffix>
        <host>cs.com.cn</host>
        <name>中证网</name>
    </datadefine>
    <datadefine id="2" encoding="UTF-8" loop="0"  initDays="5"  preurl="http://company.stcn.com/gsxw/">
        <url page="1" include="1">http://company.stcn.com/*</url> <!-- B股动态  -->
        <urlfilter timepos="1-10">(\/[0-9]{4}){2}\/[0-9]{8}(\.\w+)</urlfilter>
        <notfound>对不起,您要访问的页面暂时没有找到</notfound>
        <prefix></prefix>
        <suffix>.shtml</suffix>
        <host>stcn.com</host>
        <name>证券时报</name>
    </datadefine>    
</document>

3.程序使用的线程(建议不要修改)

新建配置文件:lmsp-snatch-threadconfig.xml:内容如下:

<?xml version="1.0" encoding="utf-8"?>
<threadparam>
    <threadswitch>0</threadswitch><!--线程开关:0表示开启;1表示关闭-->
    <threadnum>5</threadnum><!--线程数:根据实际情况来配置,数目不要太大-->
</threadparam>

4.链接本地数据库,将从网站抓取的数据,保存到本地数据库

新建配置文件:lmsp-snatch-connection.xml 内容如下:

<?xml version="1.0" encoding="utf-8"?>
<datasource>
    <provider>oracle.jdbc.driver.OracleDriver</provider>
    <connection-url>jdbc:oracle:thin:@192.168.2.230:1521:ORCL</connection-url>
    <user-name>DBTHNEW</user-name>
    <password>DBTHNEW</password>
</datasource>

 

新闻机制抓取