精华内容
下载资源
问答
  • 数据统计代码埋点

    千次阅读 2019-01-22 16:49:24
    数据统计平台,一般由数据采集,数据处理,数据存储,数据可视化,数据分析等部分组成,其中数据采集与处理是重中之重,只有及时,高效,准确的获取数据信息,才能正确的了解一个网站,一个软件的使用情况,做出可靠...

    一  引言

    数据统计平台,一般由数据采集,数据处理,数据存储,数据可视化,数据分析等部分组成,其中数据采集与处理是重中之重,只有及时,高效,准确的获取数据信息,才能正确的了解一个网站,一个软件的使用情况,做出可靠决策。

    数据采集,因各个公司需求不同,其实现亦有所差异,不过,大体上可分为三种方案:

    1、代码埋点——即在目标页面或事件中添加一小段js代码,向后端脚本异步发出伪请求,以实现基础信息统计。该方案简洁方便,能实现基本需求,而且在市场上也有百度统计,友盟这样方便的三方服务商,是绝大多数公司采用方案。

    2、可视化埋点——即通过可视化工具配置采集节点,在前端自动解析配置并上报埋点数据,从而实现所谓的“无痕埋点”, 代表方案是已经开源的Mixpanel;

    3、无埋点——它并不是真正的不需要埋点,而是前端自动采集全部事件并上报埋点数据,在后端数据计算时过滤出有用数据,代表方案是国内的GrowingIO

    数据处理,是指针对公司业务,指定需要存储的数据和对应数据格式,以实现数据有效,直观,易于分析。

    数据存储,由于统计数据存储量大,不宜采用常规数据库来存储,可采用hadoop实现。

    数据可视化,换个名词,报表系统,更易于理解,可采用echart等三方实现。

    数据分析,运维人员需要注意的事了,为公司战略指向提供可靠数据支持。

    二、代码埋点

    2.1 基于百度统计

    第一步、注册或登录百度统计,并创建应用

    第二步、获取代码,织入项目中

    第三步、检测代码是否安装成功

    第四步、查看数据分析

    2.2 自实现

    步骤:

    1、通过浏览器内置javascript对象收集信息,如页面title(通过document.title)、referrer(上一跳url,通过document.referrer)【referrer 属性可返回载入当前文档的文档的 URL】、用户显示器分辨率(通过windows.screen)、cookie信息(通过document.cookie)以及一些公司需求信息(如用户信息,商品信息,访问接口等)。
               2、创建一个最基本的发送统计的发送函数,用于创建img(实现跨域),发送统计请求到数据采集平台(后台)。

    3、解析http请求参数的信息,从服务器(WebServer)中获取一些客户端(前端)无法获取的信息,如访客ip等。然后将信息按格式写入log。最后生成一副1×1的空gif图片作为响应内容并将响应头的Content-type设为image/gif(可能需要在响应头中通过Set-cookie设置一些cookie信息)。

    代码:

    1、js埋点代码

    <script type="text/javascript"> 
        var _maq = _maq || [];
        //添加所需统计信息
        _maq.push(['_setAccount', '网站标识']);
        (function() {
            var ma = document.createElement('script'); ma.type = 'text/javascript'; ma.async = true;
            //设置统计函数路径
            ma.src = ('https:' == document.location.protocol ? 'https://www' : 'http://www') + '.xxx.xxx/ma.js';
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ma, s);
        })();     
    </script>
    

    2、统计函数

    (function () {
        var params = {};
    
        //Document对象数据    
        if(document) {
            params.domain = document.domain || ''; 
            params.url = document.URL || ''; 
            params.title = document.title || ''; 
            params.referrer = document.referrer || ''; 
        }   
    
        //Window对象数据     
        if(window && window.screen) {
            params.sh = window.screen.height || 0;
            params.sw = window.screen.width || 0;
            params.cd = window.screen.colorDepth || 0;
        } 
      
        //navigator对象数据     
        if(navigator) {
            params.lang = navigator.language || ''; 
        }  
     
        //解析_maq配置     
        if(_maq) {
            for(var i in _maq) {
                switch(_maq[i][0]) {
                    case '_setAccount':
                        params.account = _maq[i][1];
                        break;
                    default:
                        break;
                }   
            }   
        }   
    
        //拼接参数串     
        var args = ''; 
    
        for(var i in params) {
            if(args != '') {
                args += '&';
            }   
            args += i + '=' + encodeURIComponent(params[i]);
        }   
    
        //通过Image对象请求后端脚本     var img = new Image(1, 1); 
        img.src = '后端脚本地址?' + args;
    })();
    

     


     

     

    展开全文
  • [数据][json格式] 2015年统计用区划代码和城乡划分代码2013 年的时候写过一篇 [数据][xml格式] 2012年统计用区划代码和城乡划分代码。到了今天,我需要某省的省市县乡村五级数据,因此在上文基础上简单改了改,做成...

    [数据][json格式] 2016年统计用区划代码和城乡划分代码

    2013 年的时候写过一篇 [数据][xml格式] 2012年统计用区划代码和城乡划分代码

    到了今天,我需要某省的省市县乡村五级数据,因此在上文基础上简单改了改,做成了 JSON 格式,代码主体还是原来的,代码中的 JSOUP 选择器仍然适用,没变化。

    数据来源: http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/index.html

    这里写图片描述

    一共32个文件,其中一个是【全国数据.json】,包含了上述网址中的全部数据(包含省一级数据)。

    其他是各个省独立的数据,这些数据不包含省一级的数据,都是从市级开始。

    部分数据展示:

    [
      {
        "name": "石家庄市",
        "href": "http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/13/1301.html",
        "code": "130100000000",
        "type": "CITY",
        "level": 2,
        "children": [
          {
            "name": "市辖区",
            "code": "130101000000",
            "type": "COUNTY",
            "level": 3
          },
          {
            "name": "长安区",
            "href": "http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/13/01/130102.html",
            "code": "130102000000",
            "type": "COUNTY",
            "level": 3,
            "children": [
              {
                "name": "建北街道办事处",
                "href": "http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/13/01/02/130102001.html",
                "code": "130102001000",
                "type": "TOWN",
                "level": 4,
                "children": [
                  {
                    "name": "棉一社区居民委员会",
                    "code": "130102001001",
                    "type": "111",
                    "level": 5
                  },
                  {
                    "name": "光华路社区居民委员会",
                    "code": "130102001002",
                    "type": "111",
                    "level": 5
                  },
                  {
                    "name": "八家庄社区居民委员会",
                    "code": "130102001003",
                    "type": "111",
                    "level": 5
                  },
                  {
                    "name": "花园社区居民委员会",
                    "code": "130102001004",
                    "type": "111",
                    "level": 5
                  },
                  {
                    "name": "谈西社区居民委员会",
                    "code": "130102001010",
                    "type": "111",
                    "level": 5
                  },
                  {
                    "name": "谈后社区居民委员会",
                    "code": "130102001011",
                    "type": "111",
                    "level": 5
                  },
                  {
                    "name": "新浩城社区居民委员会",
                    "code": "130102001012",
                    "type": "111",
                    "level": 5
                  },
                  {
                    "name": "国赫红珊湾社区居民委员会",
                    "code": "130102001013",
                    "type": "111",
                    "level": 5
                  }
                ]
              },

    使用上面数据的时候,可以直接使用下面POJO类进行反序列化(推荐 Gson)。

    
    public class Area {
        private String name;
        private String href;
        private String code;
        /**
         * 来源: http://www.stats.gov.cn/tjsj/tjbz/200911/t20091125_8667.html
         * 111表示:主城区
         * 112表示:城乡结合区
         * 121表示:镇中心区
         * 122表示:镇乡结合区
         * 123表示:特殊区域
         * 210表示:乡中心区
         * 220表示:村庄
         */
        private String type;
        private Integer level;
    
        List<Area> children;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getHref() {
            return href;
        }
    
        public void setHref(String href) {
            this.href = href;
        }
    
        public String getCode() {
            return code;
        }
    
        public void setCode(String code) {
            this.code = code;
        }
    
        public String getType() {
            return type;
        }
    
        public void setType(String type) {
            this.type = type;
        }
    
        public Integer getLevel() {
            return level;
        }
    
        public void setLevel(Integer level) {
            this.level = level;
        }
    
        public List<Area> getChildren() {
            return children;
        }
    
        public void setChildren(List<Area> children) {
            this.children = children;
        }
    
    }

    下载地址

    链接: https://pan.baidu.com/s/1i58HgA5 密码: fw1i

    2017年12月22日 更新为 2016年数据。

    展开全文
  • 2018年统计用区划代码和城乡划分代码(截止2018年10月31日)(数据及python爬虫代码统计局网站的数据汇总。 细粒度,到最后一级(一般为5级,网站上少部分地区为4级)。 数据编码格式为utf8,以便显示名称中的生僻字...

    统计局网站的数据汇总。
    细粒度,到最后一级(一般为5级,网站上少部分地区为4级)。
    数据编码格式为utf8,以便显示名称中的生僻字,请使用合适的文本工具打开。

    这里有python爬虫代码和所需库。爬取速度快,网速较好时10分钟左右。

    结果

    数据格式,下表为前5行

    province city county town code1 code2 village 根据code2第一位
    上海市 市辖区 嘉定区 华亭镇 310114111001 220 袁家桥社区居委会 0
    上海市 市辖区 嘉定区 华亭镇 310114111002 121 沁园社区居委会 1
    上海市 市辖区 嘉定区 华亭镇 310114111003 220 华旺社区居委会 0
    上海市 市辖区 嘉定区 华亭镇 310114111201 220 联一村村委会 0
    上海市 市辖区 嘉定区 华亭镇 310114111203 220 联三村村委会 0

    依赖

    代码基于python3.6

    • python3.6.6 :python 官网下载,选择适合的版本;

    如果平台为windows 64位,依赖库使用命令.txt中命令安装即可。其他平台,使用命令自行下载安装依赖库

    pip install --no-index --find-links=.\pack -r requirements.txt  #windows 64位
    pip install -r requirements.txt                                 #其他平台
    

    asyncio.Semaphore()值最好设置为较小量(不超过100),以防网站崩溃。

    sem = asyncio.Semaphore(60)
    

    执行

    python stats_gov_2.py
    
    展开全文
  •  最近工作中,因为统计用区划代码和城乡划分代码更新了最新的2017版,需要爬取最新的数据。于是乎,本次花了一定精力,将整个2017版数据完完整整的爬了下来。相较于第一次爬虫练习的2016版,本次改进很多,主要特点...

      本文仅供学习,需要数据的文末有链接下载,请不要重复爬取。

      最近工作中,因为统计用区划代码和城乡划分代码更新了最新的2017版,需要爬取最新的数据。于是乎,本次花了一定精力,将整个2017版数据完完整整的爬了下来。相较于第一次爬虫练习的2016版,本次改进很多,主要特点如下。

      1、通过尝试爬取目标网址,发现相较于以往,竟然设置了反爬虫手段,在进行get请求的时候需要增加headers,模拟浏览器。

      2、创建headers列表,使用随机headers进行访问,反反爬虫,降低被反的可能性。

      3、采用断点续尝试请求的方式提高爬虫成功率。这一点很关键,不知道是目标网址的服务器不好还是反爬虫机制,经常会出现爬取某个次级网址的时候卡住,导致请求失败。

      4、使用了多进程技术,多个省份同时进行爬取,大大提高了效率。一开始使用的是单进程爬虫,有上万或数十万个网页需要爬取,发现爬完估计要一天。

      5、另外发现一个小问题,观察网页返回结果,显示网页是采用gb2312的方式编码的,但实际上如果获取网址采用gb2312的话,一些生僻的汉字会乱码,采用gbk就不会出现这样的问题。

      废话不多说,上代码。代码分成三部分,调度器、爬虫、下载器。

      调度器:Scheduler,创建目标网址列表,开辟进程池,并统一调度爬虫脚本与下载器。

    import Spiders
    import downloading
    from multiprocessing import Pool
    
    # 目标列表
    aimurl="http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2017/"
    aimurllist = ["11", "12", "13", "14", "15", "21", "22", "23", "31", "32", "33", "34", "35", "36", "37",
                  "41", "42", "43", "44", "45", "46", "50", "51", "52", "53", "54", "61", "62", "63", "64", "65"]
    
    def run_proc(url, num):
        print(num+' is running')
        (city, county, town, village) = Spiders.spider(url, num)
        downloading.download(city, county, town, village, num)
        print(num+' ended')
    
    
    if __name__ == "__main__":
        p = Pool(8)
        for i in aimurllist:
            p.apply_async(run_proc, args=(aimurl, i))
        print('Waiting for all subprocesses done ...')
        p.close()  # 关闭进程池
        p.join()  # 等待开辟的所有进程执行完后,主进程才继续往下执行
        print('All subprocesses done')
    

     爬虫:spiders,主要就是写爬取网页的逻辑。通过创建headers列表,使用随机headers和采用断点续尝试请求的方式,提高成功率。另外,因为本次爬虫的深度较深,代码逻辑上是要好好思考的。感兴趣的详细看一下代码,应该可以理解爬取过程。

    import requests
    from bs4 import BeautifulSoup
    import random
    import time
    
    # 选择随机headers,降低被反爬虫的可能性
    ua_list = [
            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv2.0.1) Gecko/20100101 Firefox/4.0.1",
            "Mozilla/5.0 (Windows NT 6.1; rv2.0.1) Gecko/20100101 Firefox/4.0.1",
            "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11",
            "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",
            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
            "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
            "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
            "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
            "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
            "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
            "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
            "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
            "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
            "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
            "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
            "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
    ]
    
    
    # 采用断点续尝试请求的方式提高爬虫成功率 经过测试网络正常一般最多retry一次就能获得结果
    def getsoup(url, num_retries = 6):
        user_agent = random.choice(ua_list)
        headers = {"User-Agent": user_agent}
        try:
            res = requests.get(url,headers=headers,timeout=10) #以get方法访问目标网址获取网页信息
            res.encoding = 'gbk'  # 该网页是以gbk的编码形式显示的
            soup = BeautifulSoup(res.text, 'html.parser')  # 使用美丽汤解析网页内容
            return soup
        except Exception as e:
            if num_retries >0:
                time.sleep(10)
                print(url)
                print('requests fail,retry the last th' + str(num_retries) + '  ' + time.ctime())
                return getsoup(url, num_retries-1)
            else:
                print("retry fail!")
                print("error: %s" % e + "   " + url)
                return #返回空值 程序运行报错停止
    
    
    # 获取市级代码
    def getsecond(url, num):
        city = {}
        soup = getsoup(url+num+'.html')
        for j in soup.select('.citytr '):
            # print(j)
            id = str(j.select('td')[0].text)#130100000000
            city[id[0:4]] = {'qhdm': id, 'name': j.select('td')[1].text, 'cxfldm': '0'}
        return city
    
    # 获取区县级代码
    def getthird(url, lists):
        county = {}
        for i in lists:
            soup = getsoup(url+i[0:2]+'/'+i+'.html')
            for j in soup.select('.countytr '):
                # print(j)
                id = str(j.select('td')[0].text)#130201000000
                county[id[0:6]] = {'qhdm': id, 'name': j.select('td')[1].text, 'cxfldm': '0'}
        return county
    
    
    # 获取镇级代码 市辖区没有下级代码
    def getfourth(url, lists):
        town = {}
        for i in lists:
            # print(url+i[0:2]+'/'+i[2:4]+'/'+i+'.html')
            soup = getsoup(url+i[0:2]+'/'+i[2:4]+'/'+i+'.html')
            for j in soup.select('.towntr '):
                # print(j)
                id = str(j.select('td')[0].text)  # 130202001000
                town[id[0:9]] = {'qhdm': id, 'name': j.select('td')[1].text, 'cxfldm': '0'}# 130202001
        return town
    
    
    # 获取村级代码
    def getfifth(url,lists):
        village = {}
        for i in lists:
            # print(url+i[0:2]+'/'+i[2:4]+'/'+i[4:6]+'/'+i+'.html')
            soup = getsoup(url+i[0:2]+'/'+i[2:4]+'/'+i[4:6]+'/'+i+'.html')
            for j in soup.select('.villagetr '):
                # print(j)
                id = str(j.select('td')[0].text)  # 110101001001
                village[id[0:12]] = {'qhdm': id, 'name': j.select('td')[2].text, 'cxfldm': j.select('td')[1].text}# 110101001001
        return village
    
    
    def spider(aimurl, num):
        city = getsecond(aimurl, num)
        print(num + ' city finished!')
        county = getthird(aimurl, city)
        print(num + ' county finished!')
        town = getfourth(aimurl, county)
        print(num + ' town finished!')
        village = getfifth(aimurl, town)
        print(num + ' village finished!')
        print(num + " crawl finished!Now,writing into txt...")
        return city, county, town, village
    

      细心的同学可以发现,怎么没有定义getfirst函数,实际上是有的,单进程脚本中是存在的。在单进程脚本中的思想是,先将全部的省级直辖市级爬取到,再将全部的市级爬取到,依此类推至村级。而在多进程脚本中,是先按照省为单位进行划分,再在每个省中依序爬取的。

      下载器:downloading,就是将爬取的内容下载下来,写进文本里。

    def download(city, county, town, village, num):
        path = r'E:\tjyqhdmhcxhfdm2017\tjyqhdmhcxhfdm2017_ ' + num + '.txt'
        dic = {**city, **county, **town, **village}#字典合并
        for i in dic.values():
            with open(path, 'a', encoding='utf-8') as f:
                f.write('"'+i['qhdm']+'","'+i['name']+'","'+i['cxfldm']+'"'+'\n')
        print(num+" write finished!")

      完整的代码如上,感兴趣的可以复制下来尝试运行。注意:

     1、请先在下载器中定义好下载地址,提前创建好文件夹。

     2、在执行代码爬取一遍后,很有可能文件数没有31个,那是因为在爬取过程中,就算有断点续请求的方式,仍然会有一定可能性没有成功获取导致某个省的数据爬取失败。此时只要查看运行时监视器的输出结果,搜索error,即可定位到具体哪个省没有爬取成功。通过更改调度器中aimurllist,再次爬取即可。所以如果采用单进程的方式,几乎不可能完整的将整个数据下载下来。

      最后,附上全部2017年统计用区划代码和城乡划分代码(截止2017年10月31日)数据,链接如下。

      链接: https://pan.baidu.com/s/1zbQyKx1zyh4oSmi-j_WIOQ 密码: bfcu

    展开全文
  • 2012年统计用区划代码和城乡划分代码 数据来源:http://www.stats.gov.cn/zjtj/tjbz/tjyqhdmhcxhfdm/2012/ 格式:XML 预览图: 下载地址: 全国数据(所有数据都在一个XML内):...
  • 假设SQLite数据库中有个表UserConsume,其中有一列rowTime,该列类型是...--统计本月数据代码 如下:  select * from UserConsume where rowTime between datetime('now','start of month','+
  • 来源:国家统计数据整理: 李子 城市表结构:citycode,cityname,provincecode primary key(citycode) index (provincecode ) 省份表结构:provincecode,provincename,provincetype primary key(citycode)...
  • 利用Kettle从国家统计局下载行政区划代码数据
  • 借助UN Comtrade提供的API,写了一份代码希望自动帮我下载数据。(该数据已经下载好了,需要可以留下邮箱) 具体代码如下,windows系统下这份代码可以拷贝到本地直接用python3运行,linux系统下载路径的写法
  • c/c++ 代码优化及常见错误 c语言位运算的妙用-程序优化 c/c++进制转换方法汇总(含全部代码) 二进制数-北邮2012研究生复试 质因子分解 除树和图外的数据结构可以使用STL: C++ STL的使用 数据结构 线性表 ...
  • 统计gitlab代码提交情况

    千次阅读 热门讨论 2019-10-30 16:12:07
    统计每个项目、每个人的代码提交情况,获取每个人提交的时间、提交代码的行数 1.使用到的工具 gitlab4j-api 2.逻辑: (1)定时执行 (2)遍历项目、分支(可能数据重复)、获取commits;通过项目id、分支名称、...
  • 爬取国家统计局城乡数据1 准备工作 1.1 使用的jar包: 1.2 思路 1.3 准备数据库表 1.4 准备model类 1.5 mybatis批插入2 初始化工作 2.1 初始化配置信息 2.2 初始化Http 2.3 发送http请求,获取数据...
  • Visual Studio 统计代码行数

    千次阅读 2018-10-09 11:35:52
    VS强大的查找功能,可以使用正则表达式来进行查找,这里统计代码行数的原理就是: 在所有指定文件中进行搜索,统计匹配的文本行数。 但是匹配的行需要满足:非注释、非空等特殊非代码行。 使用Ctrl+Shift+F...
  • java爬虫 抓取国家统计局:统计用区划代码和城乡划分代码(抓取省市区镇县办事处村委会数据)生成json
  • 什么是网站的统计代码

    千次阅读 2019-08-05 22:04:40
    1、什么是统计代码,它包含的种类有哪些?作用是什么? 引言:一般网站做好了站长希望知道一天有多少人访问,通过哪些关键词来自己的网站等等 网站统计:是指通过专业的网站统计分析系统(或软件),对网站访问...
  • 很想知道自己到底写了多少代码 于是,我在IDEA的plugins插件库中找到了一款统计插件Statistic 一、插件下载 File-&gt;settings-&gt;plugins,点击下方的browse repositories... 搜索Statistic 二、插件...
  • 通过gitlab远程统计git代码

    万次阅读 热门讨论 2019-07-12 19:03:43
    git的代码量大多数都是根据命令行统计,或者根据第三方插件统计。但是都不满足我的需求,因为我们代码都由gitlab管理,于是想到了通过gitlab暴露出来的接口获取数据。 第一步,生成私钥 登录你的gitlab申请私钥...
  •  1) 问题描述: 读入一个(最多9个)C程序代码文件,统计程序中代码、注释和空行数以及函数的个数,显示函数名并生成相应的记录日志。  2) 基本要求如下:  (1)、把程序文件(如.c或者.txt等)按字符顺序读入源...
  • 快速 统计SVN 代码 提交行数

    万次阅读 2018-04-26 14:50:01
    背景:需要统计一段时间内上传到SVN服务器的代码行数,SVN没有自带功能,不过可以通过使用一个Java工具:satasvn.jar来快速完成统计 前期准备: 1. 确认svn版本安装的时候提供了命令行功能:测试方法,进入cmd窗口...
  • 全部代码以及分析见GitHub:https://github.com/dta0502/NBSPRC-spider 页面分析 这里我分析一下页面,为后面的页面解析做准备。...我们进入到2016年统计用区划代码和城乡划分代码(截止2016年07月31日)...
  • 代码: import xlrd #先打开excel表 book = xlrd.open_workbook("../Data/data1.xlsx") #定位sheet表 table = book.sheet_by_name("Sheet1") #统计行 print(table.nrows) # 统计列 print(table.ncols) #打印第一行...
  • 2018年统计用区划代码和城乡划分代码(截止2018年10月31日) 地址:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2018/index.html 3级省市区
  • 大数据:Hadoop入门经典案例wordcount单词统计Java代码实现,Windows 10环境,IntelliJ IDEA集成开发环境。 附1通过命令行形式实现大数据平台Hadoop下单词统计功能。现在通过自己编写Java代码实现。本例基于Hadoop ...
  • wordpress站点如何添加统计代码

    千次阅读 2018-04-08 17:32:12
    在使用wordpress程序搭建网站,为了更好的了解自己网站每天的用户流量,我们通常情况都会安装统计代码,来更好的掌握网站的数据信息。 wordpress网站添加统计代码分成两个步骤。 第一个步骤:获取统计代码 你可以...
  • 谷歌统计代码使用方式

    千次阅读 2018-12-27 13:49:18
    1、加入 gtag 代码 &amp;lt;!-- Global site tag (gtag.js) - Google Analytics --&amp;gt; &amp;lt;script async src=&quot;https://www.googletagmanager.com/gtag/js?id=UA-*****-1&quot;&...
  • # loadtxt import numpy as np # csv 名逗号分隔值文件 ... dtype=str, # 数据类型,数据是Unicode字符串 usecols=(0,2,3)) # 指定读取的列号 # 打印ndarray数据,保留第一行 print(data_array, data_array.shape)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 646,734
精华内容 258,693
关键字:

统计数据代码代码