国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

從分析我抓取的60w知乎網民來學習如何在SSM項目中使用Echarts

TwIStOy / 2465人閱讀

摘要:一前言知乎網名的數據從何而來去年在接觸爬蟲的時候,接觸到了一個關于知乎的爬蟲。最后,本文提供的知乎網名數據是年月份左右抓取的數據。

一 前言 1.1 60w知乎網名的數據從何而來?

去年在接觸Java爬蟲的時候,接觸到了一個關于知乎的爬蟲。個人覺得寫的非常好,當時抓取的效率和成功率還是特別特別高,現在可能知乎反扒做的更好,這個開源知乎爬蟲沒之前抓取的那么順利了。我記得當時在我的i7+8g的機器上爬了將近兩天,大概爬取了60多w的數據。當然,實際抓取的用戶數據數量肯定比這個多,只是持久化過程不同步而已,也就是抓取的好幾個用戶可能只有一個存入數據庫中。

最后,本文提供的知乎網名數據是2017年12月份左右抓取的數據。

60w知乎網名數據:

鏈接:https://pan.baidu.com/s/1pEcHAbRyKP7KGcgTuZfPVA 密碼:l3so

項目源碼地址(如果覺得 有幫助的話,歡迎給個Star.):

https://github.com/Snailclimb/J2ee-Advanced (Java Web進階學習的一些源碼加詳細講解)

1.2 通過本篇文章你能學到什么?

SSM環境的搭建;

如何在SSM項目中使用Echarts

1.3 效果圖展示

細心的同學會發現,我其實只從數據庫抓取了9條數據出來。因為我的SQL語句寫錯了(逃....),大家可以自己修改Mapper文件。

二 SSM環境搭建

聲明一下,筆主使用的是MyEclipse2016(主要是為了暑假做的項目的編碼環境的統一,所以我選擇了MyEclipse2016)。

2.1 項目結構

2.2 配置文件 2.3.1 pom.xml

需要的jar包,都在這里配置好。另外我配置了一個Tomcat插件,這樣就可以通過Maven Build的方式來運行項目了。具體運行方式如下:

右鍵項目->run as -> Maven build

然后輸入tomcat7:run后點擊run即可

這里提一點:@ResponseBody注解要把對象轉換成json格式,所以需要添加相關轉換依賴的jar包(jackson)

pom.xml


    4.0.0
    spring
    ssm-echarts-demo
    war
    0.0.1-SNAPSHOT
    ssm-echarts-demo Maven Webapp
    http://maven.apache.org
    
        3.0
        UTF-8
        
        4.0.0.RELEASE
        
        
        
        3.1.1
        
        1.7.4
        
        1.4
        1.6
        
        2.8.9
        
        1.1.1
        
        5.1.29
        
        1.2.1
        
        1.3.1
        2.4
        
        2.0.0.Final
        5.4.1.Final
    
    
        
        
            junit
            junit
            4.12
            test
        
        
        
            org.springframework
            spring-test
            4.0.0.RELEASE
            test
        
        
            commons-logging
            commons-logging
            1.1.3
        
        
            commons-collections
            commons-collections
            3.2.1
        
        
        
            javax.servlet
            jstl
            1.2
        

        
        
            org.mybatis
            mybatis
            ${mybatis.version}
        
        
            org.mybatis
            mybatis-spring
            ${mybatis-spring.version}
        
        
            mysql
            mysql-connector-java
            ${mysql.version}
        
        
            com.alibaba
            druid
            0.2.23
        
        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.aspectj
            aspectjrt
            ${aspectJ.version}
        
        
            org.aspectj
            aspectjweaver
            ${aspectJ.version}
        

        
            org.springframework
            spring-context
            ${spring.version}
        

        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        

        
            org.springframework
            spring-jdbc
            ${spring.version}
        

        
            org.springframework
            spring-web
            ${spring.version}
        

        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
        
            com.google.code.gson
            gson
            2.8.5
        
        
            org.codehaus.jackson
            jackson-mapper-asl
            1.9.13
        
        
            com.alibaba
            fastjson
            1.2.3
        
        
            com.fasterxml.jackson.core
            jackson-annotations
            ${jackson.version}
        
        
            com.fasterxml.jackson.core
            jackson-core
            ${jackson.version}
        
        
            com.fasterxml.jackson.core
            jackson-databind
            ${jackson.version}
        
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
        
        
            commons-dbcp
            commons-dbcp
            ${commons-dbcp.version}
        
        
            commons-pool
            commons-pool
            ${commons-pool.version}
        
        
        
            commons-fileupload
            commons-fileupload
            ${commons-fileupload.version}
        
        
            commons-io
            commons-io
            ${commons-io.version}
        
        
        
            javax.validation
            validation-api
            ${validation-api.version}
        
        
            org.hibernate
            hibernate-validator
            ${hibernate-validator.version}
        

    
    
        ssm-echarts-demo
        
            
                maven-compiler-plugin
                2.3.2
                
                    1.8
                    1.8
                
            
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                
                    /
                    8082
                
            
            
                maven-war-plugin
                2.6
                
                    false
                
            
        
        
        
            
                src/main/resources
                
                    **/*.properties
                    **/*.xml
                    **/*.tld
                
                false
            
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                    **/*.tld
                
                false
            
        
    

2.3.2 Spring相關配置文件:

由于Spring配置較多所以我這里分了4層,分別是dao、service、transaction、web。

applicationContext-dao.xml



    
    
    
    
    
    
        
        
        
        
        
        
    
    
    
    
        
        
        
    

    
    
        
        
    


applicationContext-service.xml



    
    

applicationContext-trans.xml:




    
    
        
    
    
    

        
            
            
            
            
            
            
            
            
            
        
    
    
        
    

springmvc.xml



    
    

    
    



    
    
        
        
        
    
    
    
    
    
    
    
        
        
            10485760
        
        
        
            UTF-8
        
    
    
    
        
        
        
        
    
    
    
        
        
            
                classpath:validateMessage
            
        
        
        
        
        
    

2.3.3 數據庫連接以及log4j配置文件:

Log4J的配置文件(Configuration File)就是用來設置記錄器的級別、存放器和布局的,它可接key=value格式的設置或xml格式的設置信息。通過配置,可以創建出Log4J的運行環境。

log4j.properties

log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%-5p] %c - %m%n

db.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spider_zhihu_crawler
jdbc.username=root
jdbc.password=xxxxxx
2.3.4 Mybatis配置文件:

spring-mybatis.xml

    


    
    
        
    

    
    
        

    

2.3.5 web.xml:

web.xml



    ssm-echarts-demo
    
        index.html
        index.htm
        index.jsp
        default.html
        default.htm
        default.jsp
    

    
    
        default
        org.apache.catalina.servlets.DefaultServlet
        
            debug
            0
        
        
            listings
            false
        
        1
    

    
    
        contextConfigLocation
        classpath:spring/applicationContext-*.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
    

        default

        *.js

    
    
    

        default

        *.css

    
    
    

        default

        *.gif

    
    
    

        default

        *.jpg

    
    
    

        default

        *.ico

    
    
    

        default

        *.png

    
    
    

        default

        *.htm

    

    
    

        default

        *.eot

    
    
    

        default

        *.svg

    
    
    

        default

        *.ttf

    
    
    
        default
        *.woff
    
    
        default
        *.json
    



    
    
        spring
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring/springmvc.xml
        
        1

    
    
        spring
        /
    
    
    
        Encoding
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        Encoding
        *
    

三 核心代碼 3.1 bean

User.java

package com.snailclimb.bean;

/**
 * 用戶實體類
 * 
 * @author Snailclimb
 *
 */
public class User {
    private Integer id;

    private String userToken;

    private String location;

    private String business;

    private String sex;

    private String employment;

    private String education;

    private String username;

    private String url;

    private Integer agrees;

    private Integer thanks;

    private Integer asks;

    private Integer answers;

    private Integer posts;

    private Integer followees;

    private Integer followers;

    private String hashid;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserToken() {
        return userToken;
    }

    public void setUserToken(String userToken) {
        this.userToken = userToken == null ? null : userToken.trim();
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location == null ? null : location.trim();
    }

    public String getBusiness() {
        return business;
    }

    public void setBusiness(String business) {
        this.business = business == null ? null : business.trim();
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex == null ? null : sex.trim();
    }

    public String getEmployment() {
        return employment;
    }

    public void setEmployment(String employment) {
        this.employment = employment == null ? null : employment.trim();
    }

    public String getEducation() {
        return education;
    }

    public void setEducation(String education) {
        this.education = education == null ? null : education.trim();
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username == null ? null : username.trim();
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url == null ? null : url.trim();
    }

    public Integer getAgrees() {
        return agrees;
    }

    public void setAgrees(Integer agrees) {
        this.agrees = agrees;
    }

    public Integer getThanks() {
        return thanks;
    }

    public void setThanks(Integer thanks) {
        this.thanks = thanks;
    }

    public Integer getAsks() {
        return asks;
    }

    public void setAsks(Integer asks) {
        this.asks = asks;
    }

    public Integer getAnswers() {
        return answers;
    }

    public void setAnswers(Integer answers) {
        this.answers = answers;
    }

    public Integer getPosts() {
        return posts;
    }

    public void setPosts(Integer posts) {
        this.posts = posts;
    }

    public Integer getFollowees() {
        return followees;
    }

    public void setFollowees(Integer followees) {
        this.followees = followees;
    }

    public Integer getFollowers() {
        return followers;
    }

    public void setFollowers(Integer followers) {
        this.followers = followers;
    }

    public String getHashid() {
        return hashid;
    }

    public void setHashid(String hashid) {
        this.hashid = hashid == null ? null : hashid.trim();
    }
}

ScoreResult.java

package com.snailclimb.bean;

/**
 * 圓餅圖展示的時候需要使用到的對象
 * 
 * @author Snailclimb
 *
 */
public class ScoreResult {
    public int value; // 點贊數
    public String name;// 人名

    public float getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public ScoreResult(int value, String name) {
        super();
        this.value = value;
        this.name = name;
    }

    @Override
    public String toString() {
        return "ScoreResult [value=" + value + ", name=" + name + "]";
    }

}
3.2 dao層

UserMapper.java

package com.snailclimb.dao;

import java.util.List;

import com.snailclimb.bean.User;

public interface UserMapper {
    public List selecAgreesTop10();
}

UserMapper.xml




    
3.3 service層

UserService.java

package com.snailclimb.service;

import java.util.List;

import com.snailclimb.bean.User;

public interface UserService {
    public List selecAgreesTop10();
}
3.4 service實現層

UserServiceImpl.java

package com.snailclimb.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.snailclimb.bean.User;
import com.snailclimb.dao.UserMapper;
import com.snailclimb.service.UserService;

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public List selecAgreesTop10() {
        return userMapper.selecAgreesTop10();
    }

}
3.5 controller層
package com.snailclimb.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.snailclimb.bean.ScoreResult;
import com.snailclimb.bean.User;
import com.snailclimb.service.UserService;

@Controller
@RequestMapping(value = "/echarts")
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 折線圖和直方圖
     * 
     * @return
     */
    @RequestMapping(value = "/agreeLineAndBar")
    @ResponseBody
    public List getAgreesTop10() {
        return userService.selecAgreesTop10();

    }

    /**
     * 圓餅圖
     * 
     * @return
     */

    @RequestMapping(value = "/agreePie")
    @ResponseBody
    public List getAgreesTop10T() {
        List list = userService.selecAgreesTop10();
        List results = new ArrayList();
        for (User user : list) {
            ScoreResult scoreResult = new ScoreResult(user.getAgrees(), user.getUsername());
            results.add(scoreResult);
        }
        return results;
    }

    // 跳轉到圓餅圖展示
    @RequestMapping(value = "/intoagreePie")
    public String intoagreePie() {
        return "agreePie";

    }

    // 跳轉到折線圖和直方圖
    @RequestMapping(value = "/intoagreeLineAndBar")
    public String Index() {
        return "agreeLineAndBar";

    }
}
JSP頁面

由于JSP頁面代碼過多,大家可以直接去我上傳在Github的源碼上拷貝。下面我只貼一下Ajax請求的代碼。

下面以圓餅圖為例,看看如何通過Ajax請求獲取數據動態填充

    
    

對應的Controller層代碼:

    /**
     * 圓餅圖
     */

    @RequestMapping(value = "/agreePie")
    @ResponseBody
    public List getAgreesTop10T() {
         //查詢數據
        List list = userService.selecAgreesTop10();  
        List results = new ArrayList();
        //將數據添加到results中
        for (User user : list) {
            ScoreResult scoreResult = new ScoreResult(user.getAgrees(), user.getUsername());
            results.add(scoreResult);
        }
        //返回results
        return results;
    }

后臺返回都是JSON格式的數據,如下圖所示:

四 總結

這里只是以知乎贊同數TOP10為例子,帶著大家學習了SSM環境的搭建以及代碼的編寫,代碼中有很詳細的注釋。

通過本例子,大家完全可以自己做一個知乎粉絲數TOP、知乎感謝數TOP10等等例子出來。

另外本例子知識演示了圓餅圖、折線圖、柱狀圖的使用,大家可以自己去Echarts官網深入學習。

最后,本項目只是一個演示,還有很多需要優化的地方。比如可以使用redis來做緩存提高查詢速度、可以創建索引提高查詢速度或者直接將查詢到的數據緩存下來等等方法來提高查詢速度。

如果想要獲取更多我的原創文章,歡迎關注我的微信公眾號:"Java面試通關手冊" 。無套路,希望能與您共同進步,互相學習。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76480.html

相關文章

  • php爬蟲:知乎用戶數據爬取和分析

    摘要:背景說明小拽利用的寫的爬蟲,實驗性的爬取了知乎用戶的基本信息同時,針對爬取的數據,進行了簡單的分析呈現。本程序抓取的是知乎對外提供用戶訪問的個人信息頁面抓取過程需要攜帶用戶才能獲取頁面。 背景說明:小拽利用php的curl寫的爬蟲,實驗性的爬取了知乎5w用戶的基本信息;同時,針對爬取的數據,進行了簡單的分析呈現。demo 地址 php的spider代碼和用戶dashboard的展現代碼...

    Jioby 評論0 收藏0
  • php爬蟲:知乎用戶數據爬取和分析

    摘要:背景說明小拽利用的寫的爬蟲,實驗性的爬取了知乎用戶的基本信息同時,針對爬取的數據,進行了簡單的分析呈現。本程序抓取的是知乎對外提供用戶訪問的個人信息頁面抓取過程需要攜帶用戶才能獲取頁面。 背景說明:小拽利用php的curl寫的爬蟲,實驗性的爬取了知乎5w用戶的基本信息;同時,針對爬取的數據,進行了簡單的分析呈現。demo 地址 php的spider代碼和用戶dashboard的展現代碼...

    honhon 評論0 收藏0
  • php爬蟲:知乎用戶數據爬取和分析

    摘要:背景說明小拽利用的寫的爬蟲,實驗性的爬取了知乎用戶的基本信息同時,針對爬取的數據,進行了簡單的分析呈現。本程序抓取的是知乎對外提供用戶訪問的個人信息頁面抓取過程需要攜帶用戶才能獲取頁面。 背景說明:小拽利用php的curl寫的爬蟲,實驗性的爬取了知乎5w用戶的基本信息;同時,針對爬取的數據,進行了簡單的分析呈現。demo 地址 php的spider代碼和用戶dashboard的展現代碼...

    saucxs 評論0 收藏0
  • Java后端

    摘要:,面向切面編程,中最主要的是用于事務方面的使用。目標達成后還會有去構建微服務,希望大家多多支持。原文地址手把手教程優雅的應用四手把手實現后端搭建第四期 SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Spring 兩大核心之 AOP 學習 | 掘金技術征文 原本地址:SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Sp...

    joyvw 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<