当前位置: 首页 > 图灵资讯 > 技术篇> java 获取实时动态服务器日志文件 java获取动态网页数据

java 获取实时动态服务器日志文件 java获取动态网页数据

来源:图灵教育
时间:2023-05-17 11:38:31

 

java爬虫系列(2)-爬行动态网页

java 获取实时动态服务器日志文件 java获取动态网页数据_ico

准备工作

如果是新手,建议使用seimiagent+seimicrawler的爬行方法,非常容易上手,轻松爬行动态网页,初步上手10分钟以内。

项目地址

https://github.com/a252937166/seimicrawler

网页分析工具地址

https://github.com/a252937166/seimiagent

根据系统选择所需的文件,启动网页解析器

下载好seimiagent,根据自己的操作系统,如果是windows,就用seimiagent.exe,如果是linux,就选择seimiagentmac版本还没有,我的话一般会把seimiagent把它放在自己的linux服务器上。

指定端口号启动工具

linux例如,进入文件所在目录并指定8000端口,./seimiagent -p 8000,即可启动。

java 获取实时动态服务器日志文件 java获取动态网页数据_动态网页_02

图(1)

 

seimi的项目配置.properties

 

redis.host=127.0.0.1redis.port=6379redis.password=database.driverClassName=com.mysql.jdbc.Driverdatabase.url=database.username=database.password=seimiAgentHost=127.0.0.1seimiAgentPort=8000

 

找到此配置文件,修改seimiAgentHostseimiAgentPort为自己的地址信息。

SeimiAgentDemo.java

 

package com.ouyang.crawlers;import cn.wanghaomiao.seimi.annotation.Crawler;import cn.wanghaomiao.seimi.def.BaseSeimiCrawler;import cn.wanghaomiao.seimi.struct.Request;import cn.wanghaomiao.seimi.struct.Response;import cn.wanghaomiao.xpath.model.JXDocument;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Value;/** * 这个例子演示了如何使用SeimiAgent来捕获复杂的动态页面信息 * @author 汪浩淼 et.tw@163.com * @since 2016/4/14. */@Crawler(name = "seimiagent")public class SeimiAgentDemo extends BaseSeimiCrawler{    /**     * resource/config/seimi.properties配置方便更换,当然,您也可以根据情况使用自己的统一配置中心等服务     */    @Value("${seimiAgentHost}")    private String seimiAgentHost;    @Value("${seimiAgentPort}")    private int seimiAgentPort;    @Override    public String[] startUrls() {        return new String[]{"https://www.baidu.com"};    }    @Override    public String seimiAgentHost() {        return this.seimiAgentHost;    }    @Override    public int seimiAgentPort() {        return this.seimiAgentPort;    }    @Override    public void start(Response response) {        Request seimiAgentReq = Request.build("http://manhua.fzdm.com/2/889/","getHtml")                .useSeimiAgent()//                告诉Seimiagent是否使用cookie作为这个请求,如果没有使用当前crawler关于cookie的使用条件作为默认值。//                .setSeimiAgentUseCookie(true)                ///设置所有load完成后,给Seimiagent多少时间执行js并渲染页面,单位为毫秒                .setSeimiAgentRenderTime(5000);        push(seimiAgentReq);    }    /**     * 打印网页信息     * @param response     */    public void getHtml(Response response){        try {            System.out.println(response.getContent());        } catch (Exception e) {            e.printStackTrace();        }    }}

 

找到这个demo文件,注意.useSeimiAgent(),这意味着需要使用seimiagent除了分析动态网页外,还可以设置cookieparammeta我们使用这些参数getHtml()这个回调函数打印网页信息,比较一下,看看分析是否成功。

分析原始网页代码

我们使用chrome浏览器network查看网页的原始代码。

java 获取实时动态服务器日志文件 java获取动态网页数据_动态网页_03

图(2)

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1//DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="utf-8"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="Content-Language" content="utf-8" /><meta content="all" name="robots" /><title>海贼王889话 风之动漫</title><meta name="keywords" content="海贼王889话 " /><meta name="viewport" content="width=device-width, initial-scale=1"><meta http-equiv="Cache-Control" content="no-transform" /><meta http-equiv="Cache-Control" content="no-siteapp" /><meta name="applicable-device" content="pc,mobile" /><meta name="HandheldFriendly" content="true" /> <meta property="og:title" content=“海贼王889字”/><meta property="og:type" content="book"/><meta property="og:url" id="readurl" content="http://manhua.fzdm.com/2/889/" /><link rel="stylesheet" href="//static.fzdm.com/pure/pure-min.css"><!--[if lte IE 8]>    <link rel="stylesheet" href="//static.fzdm.com/pure/grids-responsive-old-ie-min.css"><!--[if lte IE 8]>    <link rel="stylesheet" href="//static.fzdm.com/pure/grids-responsive-old-ie-min.css"><![endif]--><!--[if gt IE 8]><!-->    <link rel="stylesheet" href="//static.fzdm.com/pure/grids-responsive-min.css"><!--<![endif]--><link rel="stylesheet" href="//static.fzdm.com/pure/fzdm.css"><link rel="icon" href="//static.fzdm.com/favicon.ico" mce_href="//static.fzdm.com/favicon.ico" type="image/x-icon"><meta name="renderer" content="webkit"><meta http-equiv="X-UA-Compatible" content="IE=edge"><link rel="apple-touch-icon" href="//static.fzdm.com/apple-touch-icon-144x144.png" /><style>.logo {    top: -2px;    height: 70px;    overflow: hidden;}.logo img{height:77px}#header {  height: 70px;}#header ul {  top: 8px;}  .pure-menu.pure-menu-open, .pure-menu.pure-menu-horizontal li .pure-menu-children {     text-align: left;     height: 70px;     background: none;   /* border: 1px solid #b7b7b7; */ }</style><script>var _hmt = _hmt || [];(function() {var hm = document.createElement("script");hm.src = "//hm.baidu.com/hm.js?cb51090c10cda176fa17fa92c3dfc;var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm, s);})();</script></head><body>    <!--[if lt IE9]>    <script src="//static.fzdm.com/html5shiv.min.js"></script>    <![endif]--><script src="//static.fzdm.com/jquery-1.9.1.min.js?[endif]--><script src="//static.fzdm.com/jquery-1.9.1.min.js?v=1"></script><script src="//static.fzdm.com/fzdm.js?v=1"></script><script src="//static.fzdm.com/u.js"></script><script src="//dup.baidustatic.com/js/dm.js"></

 

 

 

 

 

 

 

本文是转载内容,我们尊重原作者对文章的权利。如有内容错误或侵权行为,请联系我们更正或删除文章。