栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

财经股票数据之网络爬虫技术

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

财经股票数据之网络爬虫技术

        前言

        目前互联网高度发达,网络上传输着各种各样的数据,如果想要获取某种数据可以通过搜索引擎获取。其实搜索引擎的背后也是通过网络爬虫去获取数据,作为基础数据,再经过数据清洗等处理,搜索引擎再对处理之后的数据建立索引,使得我们在查询的时候,能够快速检索到。当然其中的过程是很复杂的,不是本篇文章能描述清楚的,也不是本篇文章的内容。

       经过分析,目前的爬虫框架挺多的,根据不同的应用场景,有对应的框架;针对搜索引擎,有分布式的网络爬虫;也有针对特定领域的精细化爬取。

        本文主要介绍webmagic框架,抓取股市页面数据。页面分为静态页面,动态页面,动态页面是通过js渲染的,Ajax发起的请求。在动态Ajax渲染页面上,magicweb框架是没办法处理,所以需要借助浏览器驱动器来获取,webmagic集成selenium组件。

        接下来就是抓取股市财经页面的例子,实现自动化获取相关信息,减少人为浏览页面耗费的时间,同时可以根据相关规则,做到实时告警,同时也可以获取历史数据,进行本地化计算和分析,对于财经朋友来说简直就是事半功倍。

代码:

首先是pom.xml文件,内容如下:



    4.0.0

    org.spider
    web-spider
    1.0-SNAPSHOT
    
        org.springframework.boot
        spring-boot-starter-parent
        2.6.3
    
    
        8
        8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            us.codecraft
            webmagic-core
            0.7.5
            
                
                    org.slf4j
                    slf4j-log4j12
                
            
        
        
            us.codecraft
            webmagic-extension
            0.7.5
            
                
                    org.slf4j
                    slf4j-log4j12
                
            
        

        
            us.codecraft
            webmagic-selenium
            0.7.5
        


        
            org.projectlombok
            lombok
            true
        

        
            com.alibaba
            fastjson
            1.2.46
        

        
            org.seleniumhq.selenium
            selenium-java
            3.0.1
        
        
            org.seleniumhq.selenium
            selenium-chrome-driver
            3.0.1
        
        
            org.seleniumhq.selenium
            selenium-server
            2.18.0
        
        
            com.google.code.gson
            gson
            2.2.4
        
    


接下来是pageProcessor代码,也就是页面提取,类ReportPageProcessor如下:

public class ReportPageProcessor implements PageProcessor {
    private Site site = Site.me().setRetryTimes(3).setSleepTime(100)
//            .addHeader("Connection", "keep-alive")
//            .addHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*
    @Override
    public void process(Page page) {
        // System.out.println("==========html:"+page.getHtml().toString());
        String content = page.getHtml().xpath("//table[@class='table2']/tbody/tr/td/div/ul/a/text()").nodes().toString();


        System.out.println("=========content:"+content);
    }

    
    @Override
    public Site getSite() {
        return site;
    }

    public static void main(String[] args) {
        System.setProperty("selenuim_config", "E:\develop\webmagic\config.ini");
        ReportPageProcessor pageProcessor = new ReportPageProcessor();
        SeleniumDownloader downloader = new SeleniumDownloader("E:\develop\webmagic\chromedriver_win32\chromedriver.exe");
        Spider.create(pageProcessor).addUrl("http://vip.stock.finance.sina.com.cn/corp/go.php/vCB_AllBulletin/stockid/600507.phtml")
                .setDownloader(downloader)
                .thread(5).run();
    }
}

其中需要注意:

需要设置系统参数(config.ini文件),以及配置Google浏览器驱动chromedriver.exe,注意浏览器驱动需要与自己本地的chrome浏览器版本一致;目前演示的chromedriver.exe适合chrome浏览器版本 97.0.4692.99。文章末尾会给出源代码、config.ini、以及chromedriver.exe的获取方式;

抓取结果:

接下来对运行结果进行说明:

1、先查看目标页面的结构,在浏览器中输入如下地址:http://vip.stock.finance.sina.com.cn/corp/go.php/vCB_AllBulletin/stockid/600507.phtml,再按F12分析页面,找到想要抓取的数据,本例是想抓取所有的公告信息数据。页面如下:

2、上述目标对应的代码如下:

String content = page.getHtml().xpath("//table[@class='table2']/tbody/tr/td/div/ul/a/text()").nodes().toString();

3、得到的结果如下:

附:本地chrome浏览器版本可以通过如下步骤查看:

打开chrome浏览器=》点击右上角3个点

然后点击设置=》关于chrome

获得相应的版本号:

源代码或者相关文件获取方式:

请关注公众号: 纵横股宇CTO,回复:webmagic

以上信息请合理合法使用,如果使用不当,自行承担相应后果。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/726385.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号