精华内容
参与话题
问答
  • H5中section和article和div的区别

    万次阅读 多人点赞 2017-06-06 13:37:18
    在Html5中,加入了很多... 其中和最为相似,而且和div标签貌似也有很大相似之处。... 1.article: article元素代表文档、页面或应用程序中独立的、完整的、可以独自被外部引用的内容。它可以是一篇博客或报刊中的文章、

    在Html5中,加入了很多用于“布局”的标签,他们有<header>、<nav>、<section>、<article>、<aside>、<footer>、<hgroup>等等。

    其中<section><article>最为相似,而且和div标签貌似也有很大相似之处。 但看似相似,并不是真的相似,这些标签是为了布局而生的,自然有它们更精确的语义定位,或者说他们更将强调Html的语义。
    1.article:

    article元素代表文档、页面或应用程序中独立的、完整的、可以独自被外部引用的内容。它可以是一篇博客或报刊中的文章、一篇论坛帖子、一段用户评论或独立的插件,或其他任何独立的内容。除了内容部分,一个article元素通常有它自己的标题(一般放在一个header元素里面),有时还有自己的脚注。

    article是一个特殊的section标签,它比section具有更明确的语义, 它代表一个独立的、完整的相关内容块。 div、section、article,语义是从无到有,逐渐增强的。div无任何语义,仅仅用作样式化或者脚本化的标签,对于一段主题性的内容,则就适用section,而假如这段内容可以脱离上下文,作为完整的独立存在的一段内容,则就适用 article。 原则上来说,能使用article的时候,也是可以使用section的,但是实际上,假如使用article更合适,那么就不要使用section。

    <article>
          <header>         
        <h1>标题</h1>
               <p>发表日期:<time pubdate="pubdate">2010/10/10</time></p>
      </header>
      <p>article的使用方法</p>
      <footer>
                <p><small>Copyright @ yiiyaa.net All Rights Reserverd</samll></p>
      </footer>
    </article>
    注:article元素是可以嵌套使用的,内层的内容在原则上需要与外层的内容相关联。例如,一篇博客文章中,针对该文章的评论就可以使用嵌套article元素的方式;用来呈现评论的article元素被包含在表示整体内容的article元素里面。

    2.section:

    section用作一段有专题性的内容,一般在它里面会带有标题。 section典型的应用场景应该是文章的章节、标签对话框中的标签页、或者论文中有编号的部分。section元素用于对网站或应用程序中页面上的内容进行分块,section元素的作用是对页面上的内容进行分块,或者说对文章进行分段一个section元素通常由内容及其标题组成,通常不推荐为那些没有标题的内容使用section元素。

    article与section的嵌套方式一般如下:

    <article>
      <header>
                <h1>article元素使用方法</h1>
        <p>发表日期:<time pubdate="pubdate">2010/10/10</time></p>
      </header>
      <p>此标签里显示的是article整个文章的主要内容,,下面的section元素里是对该文章的评论</p>
      <section>
                <h2>评论</h2>
        <article>
                      <header>
            <h3>发表者:maizi</h3>
            <p><time pubdate datetime="2016-6-14">1小时前</time></p>
          </header>  
          <p>这篇文章很不错啊,顶一下!</p>
               </article> 
        <article>
                      <header>            
            <h3>发表者:小妮</h3>
                            <p><time pubdate datetime="2016-6-14T:21-26:00">1小时前</time></p>
          </header>
        <p>这篇文章很不错啊,对article解释的很详细</p>  
        </article>
          </section>
    </article>

    示例内容分为几个部分,文章标题放在了header元素中,文章正文放在了header元素后面的p元素中,然后section元素把正文与评论进行了区分(是一个分块元素,用来把页面中的内容进行区分),在section元素中嵌入了评论的内容,评论中每一个人的评论相对来说又是比较独立的、完整的,因此对它们都使用一个article元素,在评论的article元素中,又可以分为标题与评论内容部分,分别放在header元素与p元素中。

    但是关于section元素的使用禁忌总结如下:
    (1)不要将section元素用作设置样式的页面容器,那是div元素的工作。
    (2)如果article元素、aside元素或nav元素更符合使用条件,不要使用section元素。
    (3)不要为没有标题的内容区块使用section元素。

    3.div:

    众所周知只是一个生命块的标签,并无具体语义,可用在任何场景,只是对比H5标签不好清晰看懂上下文。

    总结:在H5中,article元素可以看成是一种特殊类型的section元素,它比section元素更强调独立性。即section元素强调分段或分块,而article强调独立性。具体来说,如果一块内容相对来说比较独立的、完整的时候,应该使用article元素,但是如果你想将一块内容分成几段的时候,应该使用section元素。另外,在HTML5中,div元素变成了一种容器,当使用CSS样式的时候,可以对这个容器进行一个总体的CSS样式的套用。

    展开全文
  • docker 安装 nacos 原链接地址 https://www.cnblogs.com/binz/p/12295346.html </h1> <div class="clear"></div>...div class="postBody">...docker pull nacos/nacos-serve...

    docker 安装 nacos 原链接地址 https://www.cnblogs.com/binz/p/12295346.html
    	</h1>
    	<div class="clear"></div>
    	<div class="postBody">
    

    拉镜像,版本查看:https://github.com/nacos-group/nacos-docker

    docker pull nacos/nacos-server:1.1.4  //稳定版,无权限
    docker pull nacos/nacos-server:1.3.1  //稳定版,有权限

    创建数据目录

    mkdir -p /home/dockerdata/nacos/logs
    mkdir -p /home/dockerdata/nacos1.3.1/logs
     

     

    运行镜像  默认账号密码:nacos/nacos

    复制代码

    #1.1.4

    docker run -d \

    -e PREFER_HOST_MODE=ip \

    -e MODE=standalone \

    -e SPRING_DATASOURCE_PLATFORM=mysql \

    -e MYSQL_MASTER_SERVICE_HOST=172.168.1.33 \

    -e MYSQL_MASTER_SERVICE_PORT=3306 \

    -e MYSQL_MASTER_SERVICE_USER=root \

    -e MYSQL_MASTER_SERVICE_PASSWORD=root \

    -e MYSQL_MASTER_SERVICE_DB_NAME=nacos \

    -e MYSQL_SLAVE_SERVICE_HOST=172.168.1.33 \

    -e MYSQL_SLAVE_SERVICE_PORT=3306 \

    -v /home/dockerdata/nacos/logs:/home/nacos/logs \

    -p 8848:8848 \

    --name nacos \

    --restart=always \

    nacos/nacos-server:1.1.4

     

     

    #1.3.1

    docker run -d \
    -e PREFER_HOST_MODE=ip \
    -e MODE=standalone \
    -e SPRING_DATASOURCE_PLATFORM=mysql \
    -e MYSQL_SERVICE_HOST=172.168.1.33 \
    -e MYSQL_SERVICE_PORT=3306 \
    -e MYSQL_SERVICE_USER=root \
    -e MYSQL_SERVICE_PASSWORD=root \
    -e MYSQL_SERVICE_DB_NAME=nacos \
    -e TIME_ZONE='Asia/Shanghai' \
    -v /home/dockerdata/nacos1.3.1/logs:/home/nacos/logs \
    -p 8848:8848 \
    --name nacos1.3.1 \
    --restart=always \
    nacos/nacos-server:1.3.1

    复制代码

    nacos初始化sql,需要先创建nacos数据库后,然后执行下面的sql

    https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

    /******************************************/
    /*   数据库全名 = nacos_config   */
    /*   表名称 = config_info   */
    /******************************************/
    CREATE TABLE `config_info` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
      `data_id` varchar(255) NOT NULL COMMENT 'data_id',
      `group_id` varchar(255) DEFAULT NULL,
      `content` longtext NOT NULL COMMENT 'content',
      `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
      `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
      `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
      `src_user` text COMMENT 'source user',
      `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
      `app_name` varchar(128) DEFAULT NULL,
      `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
      `c_desc` varchar(256) DEFAULT NULL,
      `c_use` varchar(64) DEFAULT NULL,
      `effect` varchar(64) DEFAULT NULL,
      `type` varchar(64) DEFAULT NULL,
      `c_schema` text,
      PRIMARY KEY (`id`),
      UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';
    

    //
    / 数据库全名 = nacos_config /
    / 表名称 = config_info_aggr /
    /******/
    CREATE TABLE config_info_aggr (
    id
    bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,
    data_id
    varchar(255) NOT NULL COMMENT data_id,
    group_id
    varchar(255) NOT NULL COMMENT group_id,
    datum_id
    varchar(255) NOT NULL COMMENT datum_id,
    content longtext
    NOT NULL COMMENT 内容,
    gmt_modified
    datetime NOT NULL COMMENT 修改时间,
    </span><span style="color: rgba(255, 0, 255, 1)">app_name</span> varchar(128) DEFAULT NULL,
    tenant_id
    varchar(128) DEFAULT ‘’ COMMENT 租户字段,
    PRIMARY KEY (id),
    UNIQUE KEY uk_configinfoaggr_datagrouptenantdatum (data_id,group_id,tenant_id,datum_id)
    ) ENGINE
    =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=增加租户字段;

    //
    / 数据库全名 = nacos_config /
    / 表名称 = config_info_beta /
    /******/
    CREATE TABLE config_info_beta (
    id
    bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,
    data_id
    varchar(255) NOT NULL COMMENT data_id,
    group_id
    varchar(128) NOT NULL COMMENT group_id,
    </span><span style="color: rgba(255, 0, 255, 1)">app_name</span> varchar(128) DEFAULT NULL COMMENT app_name,
    content longtext
    NOT NULL COMMENT content,
    beta_ips
    varchar(1024) DEFAULT NULL COMMENT betaIps,
    md5
    varchar(32) DEFAULT NULL COMMENT md5,
    gmt_create
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00 COMMENT 创建时间,
    gmt_modified
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00 COMMENT 修改时间,
    src_user
    text COMMENT source user,
    src_ip
    varchar(20) DEFAULT NULL COMMENT source ip,
    tenant_id
    varchar(128) DEFAULT ‘’ COMMENT 租户字段,
    PRIMARY KEY (id),
    UNIQUE KEY uk_configinfobeta_datagrouptenant (data_id,group_id,tenant_id)
    ) ENGINE
    =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=config_info_beta;

    //
    / 数据库全名 = nacos_config /
    / 表名称 = config_info_tag /
    /******/
    CREATE TABLE config_info_tag (
    id
    bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,
    data_id
    varchar(255) NOT NULL COMMENT data_id,
    group_id
    varchar(128) NOT NULL COMMENT group_id,
    tenant_id
    varchar(128) DEFAULT ‘’ COMMENT tenant_id,
    tag_id
    varchar(128) NOT NULL COMMENT tag_id,
    </span><span style="color: rgba(255, 0, 255, 1)">app_name</span> varchar(128) DEFAULT NULL COMMENT app_name,
    content longtext
    NOT NULL COMMENT content,
    md5
    varchar(32) DEFAULT NULL COMMENT md5,
    gmt_create
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00 COMMENT 创建时间,
    gmt_modified
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00 COMMENT 修改时间,
    src_user
    text COMMENT source user,
    src_ip
    varchar(20) DEFAULT NULL COMMENT source ip,
    PRIMARY KEY (id),
    UNIQUE KEY uk_configinfotag_datagrouptenanttag (data_id,group_id,tenant_id,tag_id)
    ) ENGINE
    =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=config_info_tag;

    //
    / 数据库全名 = nacos_config /
    / 表名称 = config_tags_relation /
    /******/
    CREATE TABLE config_tags_relation (
    id
    bigint(20) NOT NULL COMMENT id,
    tag_name
    varchar(128) NOT NULL COMMENT tag_name,
    tag_type
    varchar(64) DEFAULT NULL COMMENT tag_type,
    data_id
    varchar(255) NOT NULL COMMENT data_id,
    group_id
    varchar(128) NOT NULL COMMENT group_id,
    tenant_id
    varchar(128) DEFAULT ‘’ COMMENT tenant_id,
    nid
    bigint(20) NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (nid),
    UNIQUE KEY uk_configtagrelation_configidtag (id,tag_name,tag_type),
    KEY idx_tenant_id (tenant_id)
    ) ENGINE
    =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=config_tag_relation;

    //
    / 数据库全名 = nacos_config /
    / 表名称 = group_capacity /
    /******/
    CREATE TABLE group_capacity (
    id
    bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,
    group_id
    varchar(128) NOT NULL DEFAULT ‘’ COMMENT Group ID,空字符表示整个集群,
    quota
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 配额,0表示使用默认值,
    usage
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 使用量,
    max_size
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个配置大小上限,单位为字节,0表示使用默认值,
    max_aggr_count
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 聚合子配置最大个数,,0表示使用默认值,
    max_aggr_size
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值,
    max_history_count
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 最大变更历史数量,
    gmt_create
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00 COMMENT 创建时间,
    gmt_modified
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00 COMMENT 修改时间,
    PRIMARY KEY (id),
    UNIQUE KEY uk_group_id (group_id)
    ) ENGINE
    =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=集群、各Group容量信息表;

    //
    / 数据库全名 = nacos_config /
    / 表名称 = his_config_info /
    /******/
    CREATE TABLE his_config_info (
    id
    bigint(64) unsigned NOT NULL,
    nid
    bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    data_id
    varchar(255) NOT NULL,
    group_id
    varchar(128) NOT NULL,
    </span><span style="color: rgba(255, 0, 255, 1)">app_name</span> varchar(128) DEFAULT NULL COMMENT app_name,
    content longtext
    NOT NULL,
    md5
    varchar(32) DEFAULT NULL,
    gmt_create
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00,
    gmt_modified
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00,
    src_user
    text,
    src_ip
    varchar(20) DEFAULT NULL,
    op_type
    char(10) DEFAULT NULL,
    tenant_id
    varchar(128) DEFAULT ‘’ COMMENT 租户字段,
    PRIMARY KEY (nid),
    KEY idx_gmt_create (gmt_create),
    KEY idx_gmt_modified (gmt_modified),
    KEY idx_did (data_id)
    ) ENGINE
    =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=多租户改造;

    //
    / 数据库全名 = nacos_config /
    / 表名称 = tenant_capacity /
    /******/
    CREATE TABLE tenant_capacity (
    id
    bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID,
    tenant_id
    varchar(128) NOT NULL DEFAULT ‘’ COMMENT Tenant ID,
    quota
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 配额,0表示使用默认值,
    usage
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 使用量,
    max_size
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个配置大小上限,单位为字节,0表示使用默认值,
    max_aggr_count
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 聚合子配置最大个数,
    max_aggr_size
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值,
    max_history_count
    int(10) unsigned NOT NULL DEFAULT 0 COMMENT 最大变更历史数量,
    gmt_create
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00 COMMENT 创建时间,
    gmt_modified
    datetime NOT NULL DEFAULT 2010-05-05 00:00:00 COMMENT 修改时间,
    PRIMARY KEY (id),
    UNIQUE KEY uk_tenant_id (tenant_id)
    ) ENGINE
    =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=租户容量信息表;

    CREATE TABLE tenant_info (
    id
    bigint(20) NOT NULL AUTO_INCREMENT COMMENT id,
    kp
    varchar(128) NOT NULL COMMENT kp,
    tenant_id
    varchar(128) default ‘’ COMMENT tenant_id,
    tenant_name
    varchar(128) default ‘’ COMMENT tenant_name,
    tenant_desc
    varchar(256) DEFAULT NULL COMMENT tenant_desc,
    create_source
    varchar(32) DEFAULT NULL COMMENT create_source,
    gmt_create
    bigint(20) NOT NULL COMMENT 创建时间,
    gmt_modified
    bigint(20) NOT NULL COMMENT 修改时间,
    PRIMARY KEY (id),
    UNIQUE KEY uk_tenant_info_kptenantid (kp,tenant_id),
    KEY idx_tenant_id (tenant_id)
    ) ENGINE
    =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=tenant_info;

    CREATE TABLE users (
    username
    varchar(50) NOT NULL PRIMARY KEY,
    password
    varchar(500) NOT NULL,
    enabled boolean
    NOT NULL
    );

    CREATE TABLE roles (
    username
    varchar(50) NOT NULL,
    role
    varchar(50) NOT NULL
    );

    INSERT INTO users (username, password, enabled) VALUES (nacos, $2a1010EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu, TRUE);

    INSERT INTO roles (username, role) VALUES (nacos, ROLE_ADMIN);

    View Code

     

    1.1.4 升级1.3.1需要执行的脚本

    复制代码
    ALTER TABLE `roles` ADD UNIQUE `uk_username_role` (`username`, `role`);
    

    CREATE TABLE permissions (
    role
    varchar(50) NOT NULL,
    resource
    varchar(512) NOT NULL,
    action
    varchar(8) NOT NULL,
    constraint uk_role_permission UNIQUE (role,resource,action)
    ) ROW_FORMAT
    =DYNAMIC;

    复制代码

     如果启动1.3.1报错,比如mysql时区异常,把conf配置文件弄到主机上

    复制代码
    docker cp nacos1.3.1:/home/nacos/conf /home/dockerdata/nacos1.3.1 

    #修改mysql的配置后

    docker stop nacos1.3.1
    docker rm nacos1.3.1

    docker run -d \
    -e PREFER_HOST_MODE=ip \
    -e MODE=standalone \
    -e SPRING_DATASOURCE_PLATFORM=mysql \
    -e MYSQL_SERVICE_HOST=172.168.1.33 \
    -e MYSQL_SERVICE_PORT=3306 \
    -e MYSQL_SERVICE_USER=root \
    -e MYSQL_SERVICE_PASSWORD=root \
    -e MYSQL_SERVICE_DB_NAME=nacos \
    -e TIME_ZONE='Asia/Shanghai' \
    -v /home/dockerdata/nacos1.3.1/logs:/home/nacos/logs \
    -v /home/dockerdata/nacos1.3.1/conf:/home/nacos/conf \
    -p 8848:8848 \
    --name nacos1.3.1 \
    --restart=always \
    nacos/nacos-server:1.3.1

    复制代码

     

    分类: docker, nacos
    <div id="blog_post_info">
    
    0
    0
    <div class="clear"></div>
    <div id="post_next_prev">
    
    <a href="https://www.cnblogs.com/binz/p/12295328.html" class="p_n_p_prefix">« </a> 上一篇:    <a href="https://www.cnblogs.com/binz/p/12295328.html" title="发布于 2020-02-11 15:43">docker 安装 gitlab-ce</a>
    <br>
    <a href="https://www.cnblogs.com/binz/p/12295374.html" class="p_n_p_prefix">» </a> 下一篇:    <a href="https://www.cnblogs.com/binz/p/12295374.html" title="发布于 2020-02-11 15:54">docker 安装 mysql5.7</a>
    
    posted @ 2020-02-11 15:48  Binz  阅读(8300)  评论(0编辑  收藏

    2020-02-11 docker 安装 gitlab-ce

    展开全文
  • Latex: article模板

    千次阅读 2017-08-01 20:43:00
    \documentclass[hyperref,UTF8]{article} \usepackage[colorlinks,linkcolor=blue,anchorcolor=yellow,citecolor=blue,urlcolor=blue]{hyperref}% set hyber link color as 'blue' \usepackage{geometry}% adjust pd...
    \documentclass[hyperref,UTF8]{article}
    \usepackage[colorlinks,linkcolor=blue,anchorcolor=yellow,citecolor=blue,urlcolor=blue]{hyperref}% set hyber link color as 'blue'
    \usepackage{geometry}% adjust pdf page geometry
    \usepackage{xcolor}% package to get color
    \usepackage{graphicx}% package to insert figures
    \usepackage{listings}% insert source codes using list
    \usepackage{indentfirst}% zoom out at paragraph's fisrt line
    \usepackage{float}% figure float effect
    \usepackage{fancyhdr}% set the page upper and lower line style
    \usepackage{amsmath}% insert Math functions 
    \usepackage{caption} % caption for figures, auto number fig
    
    
    
    
    \numberwithin{equation}{section} % number the equations according to section
    \lstset{breaklines}
    \lstset{extendedchars=false}%solve cross line equations
    \geometry{b5paper,scale=0.85,centering} 
    \pagestyle{fancy}
    \setlength{\parindent}{2em} %zoom in at the start line
    \title{article module}
    \author{Nan}
    \date{\today}
    
    
    
    
    \begin{document}\large %\Huge\huge\LARGE\Large\large\normalsize(default)\small\footnotesize\scriptsize\tiny 
    \maketitle{\Large}
    \thispagestyle{empty} % hide the page number of first title page
    \tableofcontents % generate content index
    
    
    \section{citation}
    Here we test the new citation style\cite{Fielding1996}.
    Due to the strong neutron radiation's damage to in vessel RMP coil, the DT burning aimed Demo reactor will not take this approach to control ELM burst, while in the current ITER's design, the RMP coil will be applied\cite{Freidberg_Ideal_MHD}.   
    
    
    
    
    \section{source code highlight}
    % --------- code without grammer highlight
    \begin{lstlisting}
    int main()
    {
        print('Hello World! /n')
    }
    \end{lstlisting}
    
    
    % --------- code with grammer highlight
    \begin{lstlisting}[ language=C] 
    int main(int argc, char ** argv) 
    { 
        
        printf("Hello world! \n"); 
            
        return 0; 
    } 
    \end{lstlisting}
    
    
    % --------- code with line number and edge box
    \begin{lstlisting}[language={[ANSI]C},numbers=left, numberstyle=\tiny,keywordstyle=\color{blue!70},commentstyle=\color{red!50!green!50!blue!50},frame=shadowbox, rulesepcolor=\color{red!20!green!20!blue!20}] 
        int main(int argc, char ** argv) 
        { 
            
            printf("Hello world! \n"); 
            
            return 0; 
        } 
    \end{lstlisting}
    
    
    
    
    \section{equation}
    * very simple inline equation:$S=\int_{t1}^{t2}L(q,dq/dt,t)dt$\\
    * line equation:
    $$S=\int_{t1}^{t2}L(q,dq/dt,t)dt$$
    * line equation with label
    \begin{equation}
    S=\int_{t1}^{t2}L(q,dq/dt,t)dt
    \end{equation}
    
    
    
    
    \section{figure insertion}
    \subsection{fig draw by latex}
    draw a curve.
    \begin{center}
        \centering
        \fbox{\begin{picture}(120,60)
            \put(10,10){\circle*{3}}
            \put(50,50){\circle*{3}}
            \put(110,10){\circle*{3}}
            \thinlines
            \put(5,5){\line(1,1){50}}
            \put(117.5,5){\line(-3,2){75}}
            \thicklines
            \qbezier(10,10)(50,50)(110,10)
            \end{picture}}
        \captionof{figure}{test fig: curve}
    \end{center}
    
    Insert a ruler picture.
    \begin{center}
        \centering
        {\unitlength=1cm
            \begin{picture}(10,0.7)
            \put(0,0){\line(1,0){10}}
            \multiput(0,0)(1,0){11}{\line(0,1){0,7}}
            \multiput(0,0)(0.5,0){20}{\line(0,1){0.5}}
            \multiput(0,0)(0.1,0){100}{\line(0,1){0.3}}
            \end{picture}}
        \captionof{figure}{test fig: ruler}
    \end{center}
    
    
    
    
    \begin{thebibliography}{l}
        \bibitem{BaiduBaikeMaxwellequation}{Baidubaike,Mexwell\url{http://baike.baidu.com/link?url=IaXpxAp8JARmOGSW7cEtJWlNK3O9-6vTnLxyG-8FNIsxCtFmIbWjhTbImV_yR_hQDiZESTQlXWCiy4ShZ_tPH_}}
        \bibitem{Colton1996}{A L Colton, R J Buttery, S J Fielding, et al.,Plasma Physics and Controlled Fusion, 1996, Vol.38,P.1359-1365}
        \bibitem[Fielding1996paper]{Fielding1996}{S. J. Fielding, J. D. Ashall, P. G. Carolan, et al.,Plasma Physics and Controlled Fusion, 1996, Vol.38,P.1091-1102}
        \bibitem{Han2000}{W. E. Han, A. Thyagaraja, S. J. Fielding, et al.,Plasma Physics and Controlled Fusion, 2000, Vol.42,P.181-201}
        \bibitem{Guoshuohong}{郭硕鸿,电动力学,北京:2008年6月,第3版,高等教育出版社 P14}
        \bibitem{citekey}{details}
    \end{thebibliography}
    \end{document}

    转载于:https://www.cnblogs.com/docnan/p/7270583.html

    展开全文
  • 我主要是用了两个方法来抽去正文内容,第一个方法,诸如xpath,css,正则表达式,beautifulsoup来解析新闻页面的时候,总是会遇到这样那样各种奇奇怪怪的问题,让人很头疼。第二个方法是后面标红的,主要推荐用...

    我主要是用了两个方法来抽去正文内容,第一个方法,诸如xpath,css,正则表达式,beautifulsoup来解析新闻页面的时候,总是会遇到这样那样各种奇奇怪怪的问题,让人很头疼。第二个方法是后面标红的,主要推荐用newspaper库

    在导师公司,需要利用重度搜索引擎来最快的获取想要的内容,再建立语料库,于是我用python 的 beautifulsoup 和urllib 来抓取一些网页内容来做训练语料。

    搜索关键词是 “人名 公司 说”,其实只要三步就可以完成,第一个是直接在百度主页上搜,然后先是在百度结果搜索页上的链接获取下来,第二个是进入结果搜索页主页面上的的那些链接,然后抓去正文内容,第三个就是将获取到的正文内容保存下来,对内容进行分词,比如在正文里面找到人说过的话,可以用说、表示、说到、曾经说、“  ”来判断,这些不做描述了,主要说一下抽取正文内容。

    提取链接

    通过网页源码,发现这些超链接都是在<div class = "main"> </div>标签之间(不同网站有不同的格式),用beautifulsoup来提取比较好,若用urllib容提取到其他url,不易区分。 例如下图

    代码如下: 

    #encoding=utf-8
    #coding=utf-8
    import urllib,urllib2  
    from bs4 import BeautifulSoup
    import re
    import os
    import string
     
     
    #得到url的list
    def get_url_list(purl):
        #连接
        req = urllib2.Request(purl,headers={'User-Agent':"Magic Browser"})
        page = urllib2.urlopen(req)  
        soup = BeautifulSoup(page.read())
        #读取标签
        a_div = soup.find('div',{'class':'main'})
        b_div = a_div.find('div',{'class':'left'})
        c_div = b_div.find('div',{'class':'newsList'})
        
        links4 = []
        #得到url的list
        for link_aa in c_div:
            for link_bb in link_aa:
                links4.append(link_bb.find('a'))
                
        links4 = list(set(links4))
        links4.remove(-1)
        links4.remove(None)
     
        return links4
     
    #从list中找到想要的新闻链接
    #找到要访问的下一个页面的url
    def get_url(links):
     
        url = []
        url2 = ''
        url3 = ''
        url4 = ''
        i = 0
     
        for link in links:
            if link.contents == [u'后一天']:
                continue
            
            #上一页  和  下一页 的标签情况比较复杂
            #取出“上一页”标签的url(貌似不管用)
            if str(link.contents).find(u'/> ') != -1:
                continue
     
            #取出“下一页”标签的url
            if str(link.contents).find(u' <img') != -1:
                url2 = link.get("href")
                i = 1
                continue
            
            if link.contents == [u'前一天']:
                url3 = link.get("href")
                continue
        
            url.append(link.get("href"))
     
        if(i == 1):
            url4 = url2
        else:
            url4 = url3
     
        return url , url4
     
    def main():
     
        link_url = []
        link_url_all = []
        link_url_all_temp = []
        next_url = ''
     
        #开始的url
        purl = 'http://news.ifeng.com/listpage/4550/20140903/1/rtlist.shtml'
        link_url = get_url_list(purl)
        link_url_all , next_url = get_url(link_url)
     
        #做了100次循环
        for i in range(100):
            link_url = get_url_list(next_url)
            link_url_all_temp , next_url = get_url(link_url)
            
            link_url_all = link_url_all + link_url_all_temp
     
        #将全部url存档
        path = 'd:\\url.txt'
        fp = open(path,'w')
        for link in link_url_all:
            fp.write(str(link)+'\n')
        fp.close()
        
    if __name__ == '__main__':
        main()
     
     
        
    

    但是!!!!这个方法并不好一点都不好 ,太不方便

    我们可以用python 的一个库 newspaper的Article包,直接抽取文章内容,不用再分析web页面上的什么diva,css啊

    from newspaper import Article
    url = 'http://news.ifeng.com/a/20180504/58107235_0.shtml'
    news = Article(url, language='zh')
    news .download()
    news .parse()
    print(news.text)
    print(news.title)
    # print(news.html)
    # print(news.authors)
    # print(news.top_image)
    # print(news.movies)
    # print(news.keywords)
    # print(news.summary)

    也可以直接导入包

    import newspaper
    news = newspaper.build(url, language='zh')
    article = news.articles[0]
    article.download()
    article.parse()
    print(article.text)

    我用到的是几代码为:

    第一段代码为获取结果搜索页的url链接,将这些链接保存到一个txt文件

    第二段代码是进入就过搜索页的链接,抽去正文内容

    这个方法比上一个真是好到爆,这个库包就是好用!!!强烈推荐

    1. def baidu_search(wd,pn_max,save_file_name):
      
          #百度搜索爬虫,给定关键词和页数以及存储到哪个文件中,返回结果去重复后的url集合
          url= "https://www.baidu.com/s"
          # url = "https://www.google.com.hk"
          # return_set = set()
          with open(save_file_name, 'a', encoding='utf-8') as out_data:
              for page in range(pn_max):
                  pn = page*10
      
                  querystring = {
                      "wd":wd,
                      "pn":pn,
                      "oq":wd,
                      "ie":"utf-8",
                      "usm":2,
                  }
      
                  headers = {
                      'pragma': "no-cache",
                      'accept-encoding': "gzip, deflate, br",
                      'accept-language': "zh-CN,zh;q=0.8",
                      'upgrade-insecure-requests': "1",
                      'user-agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
                      'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
                      'cache-control': "no-cache",
                      'connection': "keep-alive",
                      }
                  try:
                      response = requests.request("GET", url, headers = headers, params=querystring)
                      html=etree.HTML(response.text, parser=etree.HTMLParser(encoding='utf-8'))
                      # print(response.text)
                      titles=[]
                      titles_tags=html.xpath('//div[@id="content_left"]/div/h3/a')
                      for tag in titles_tags:
                          title=tag.xpath('string(.)').strip()
                          titles.append(title)
                      urls=html.xpath('//div[@id="content_left"]/div/h3/a/@href')
      
                      print(len(urls))
                      for data in zip(titles, urls):
                          # out_data.write(data[0] + ',' + data[1] + '\n')
                          out_data.write(data[1] + '\n')
                  except Exception as e:
                      print ("页面加载失败", e)
                      continue
      
      # def exc_search_content():
      #     url = "https://www.baidu.com/s"
      #     response = requests.request("GET", url)
      #     responser = requests.request("GET",response.url)
      #     html = etree.HTML(responser.content, parser=etree.HTMLParser(encoding='utf-8'))
      #     urls = html.xpath
      
      if __name__ == '__main__':
          wd = "马云 阿里巴巴 曾经说"
          pn = 4
          save_file_name = "save_url.txt"
          return_set = baidu_search(wd,pn,save_file_name)
    2. import urllib
      import re
      import os
      import string
      from bs4 import BeautifulSoup
      import logging
      from newspaper import Article
      
      urlLinks = []
      save_urls = 'save_url.txt'
      file = open(save_urls,'r')
      
      #读取之前保存的url
      for line in file:
          urlLinks.append(line)
      file.close()
      
      print(len(urlLinks))
      print(urlLinks)
      
      for link in urlLinks:
          try:
              news = Article(link.strip(), language = 'zh')
              news.download()
              news.parse()
              print(news.text)
              print('-------------------------------------------------------------------------------------------------------')
          except Exception as e:
              print("Error: 网页为404错误")

    现在说一下安装这个库,在settings配置环境,添加包newspaper的时候总是添加不进去。那就pip吧!

    于是打开命令行窗口,输入pip3 install --ignore-installed --upgrade newspaper3k,等待一会就安装好了。

    如果文章没有指明使用的什么语言的时候,Newspaper会尝试自动识别。

    或者现在python3版本用的都是newspaper3k,所以再pycharm左下角打开命令行直接输 pip install newspaper3k就可以了

     

    展开全文
  • (翻译)文章列表(Article List)

    千次阅读 2018-08-26 22:51:33
    问题概述   指导用户找到其感兴趣的内容,仅靠分层导航无法实现这个目标
  • 最近正在学习html5,刚接触html5,感觉有点不适应,因为有一些标签改变了,特别是div, section article这三个标签,查了一些资料,也试着用html5和css3布局网页,稍微有点头绪了,下边还有一个我刚刚布局好的一个...
  • 最近在学习html5,关于section和div还有article的理解非常模糊,于是查了些资料终于对section和div还有article的区别有了些自己的理解。怕以后忘记,记录下来。第一点:&lt;section&gt; 标签定义文档中的节...
  • div section和article区别

    千次阅读 2015-03-01 09:41:43
    其中和最为相似,而且和div标签貌似也有很大相似之处。 但看似相似,并不是真的相似,这些标签是为了布局而生的,自然有它们更精确的语义定位,或者说他们更将强调Html的语义。 DIV 这个标签一直是我们见得最多、用...
  • html5之divarticle,section区别与应用

    万次阅读 多人点赞 2015-09-17 17:01:54
    近来,发现自己编码有个问题,对articlediv,section有些乱用,索性就好好了解下他们的区别,写个文章,好好的科普一下…… div: hello,大家好。我叫div,对应英文单词中的division,我是块级元素,就是在我...
  • div、section、article的区别和使用

    千次阅读 2014-03-28 10:17:01
    在进行HTML5的编写时,会对div、section、article的使用混淆,经过查阅相关的资料,以及自己的总结,得出div、section、article的区别。 1、什么时候使用 (1)div:作为布局以及样式化时使用; (2)section:...
  • div section article ,语义是从无到有,逐渐增强的。div 无任何语义,仅仅用作样式化或者脚本化的钩子(hook),对于一段主题性的内容,则就适用 section,而假如这段内容可以脱离上下文,作为完整的独立存在的一段...
  • HTML5之section与articlediv

    千次阅读 2013-03-29 16:36:01
    适用场景:(与article互相当干爹,怎么用分情况!) 用article呢还是用section呢?还是用div呢? 当一个区域没有语义时果断用div标签! 有语义就要分情况了 一个博文用article,然后用section将不同的...
  • section 不是一个专用来做容器的标签,专用的是 div ,section 里应该有 标题(h1~6).只有元素内容会被列在文档大纲中时,才适合用section元素。 aside为语义化标签,通常用来描述与文档主体内容不相关的内容。比如...
  • CSS3中的div,section,article的区别

    千次阅读 2018-05-30 10:25:05
    div:在任何框架中,div始终是div,不管你是什么,都可以使用div,咱的功能就是自成个钩子方便添加样式。section:当然既然可以用section,那这部分内容就一定也可以使用section,section中文就是:节,部分的意思,...
  • 1)div在html早期版本就支持了,section和article是html5提出的两个语义化标签。如果只是针对一个块内容做样式化,三者并无区别。 2)作为语义化标签,section 应用的典型场景有文章的章节、标签对话框中的标签页、...
  • 最近写网页经常需要将div在屏幕中居中显示,遂记录下几个常用的方法,都比较简单。 水平居中直接加上&amp;lt;center&amp;gt;标签即可,或者设置margin:auto;当然也可以用下面的方法下面说两种在屏幕正中...
  • HTML5 - section、articlediv

    千次阅读 2017-11-28 15:23:05
    【1】sectionsection是带有语义的标签。W3C中定义:<section> 标签定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。 <h1>PRC <p>The People's Republic of China was born in 1949... ...
  • 实现div里的img图片水平垂直居中

    万次阅读 多人点赞 2017-03-31 09:53:09
    div> <img src="1.jpg" alt="haha"> </div> </body>方法一: 将display设置成table-cell,然后水平居中设置text-align为center,垂直居中设置vertical-align为middle。...
  • 文本文字在DIV中垂直水平居中显示

    万次阅读 多人点赞 2018-01-17 15:24:06
    文字居中 垂直居中(vertical-align) 我们都知道有这么一个属性可以让图片,文本等在元素中垂直居中 vertical-align:middle;...vertical-align值有很多,常用的就是middle,bottom,text-bottom等,我们先说...
  • html 中div垂直居中的三种方式

    万次阅读 2011-01-26 16:08:00
    1、第一种: <styletype="text/css"> <....con_div{ width:400px; height:300px; border:1pxsolid#777; text-align:center; display:table-cell; vertical-align:middle; back...
  • 关于Div的宽度与高度的100%设定

    万次阅读 2016-05-08 16:37:19
    正像你所知道的那样,设置DIV大小的有两个属性width和height,以前在学习DIV每次给DIV设置100%宽度或高度时都很迷惑,不明确这个100%的宽度(高度)到底有多宽有多高?这个100%是从哪里得到的从哪里继承的?今天我们...
  • vue 自定义select下拉框样式(div模拟)

    万次阅读 2020-05-11 14:58:03
    div class="divInput"> <div class="input" @click="openValue"> <input v-model="value" type="text" placeholder="筛选实验类型"> <img src="../assets/arrow.png" alt=""> </div>...
  • HTML如何让IMG自动适应DIV容器大小

    万次阅读 多人点赞 2018-05-22 12:21:12
    HTML如何让IMG自动适应DIV容器...DIV样式(元素居中显示) IMG样式(横向拉伸,纵向自动匹配大小) width:100%; height:auto; DIV样式(元素居中显示) display:flex; align-i...
  • CSS实现div居中方法

    万次阅读 2018-12-18 18:24:50
    请举出CSS实现div居中效果的方式? 解:居中分为水平居中,垂直居中,水平-垂直居中三中情况   水平居中 本节内容参考:https://www.w3cplus.com/css/elements-horizontally-center-with-css.html 实现1:外边...
  • div弹出窗口在frameset外层解决方案

    万次阅读 2012-04-20 13:16:39
    div作为网页元素,是依赖与frame的。怎么让其在整个视图窗口的最上层呢? frmae 连接网页,会对超过的部分进行遮挡。这里提供了一种解决方案.先记录下来。 index.jsp   sorry your browser doesn't accept
  • 如何让你的html button本身居中呢?两种方法搞定。
  • 支持IE,Opera,不支持FF。只要是使用contenteditable属性.例子: 程序代码 可以编辑我啦。。。。 aspx.contentEditable=true; 程序代码 可以编辑我啦。。。。
  • 一个好看的js加载loading的div样式

    千次阅读 2017-09-22 16:30:13
    一个好看的js加载loading的div样式
  • H5中<header><footer>与<div>的区别

    千次阅读 2017-04-28 10:13:14
    区别就是没区别,在H5出现以后,主张语义化标签,、等html5的这几个标签都是收集了网上数百万网站上出现概率比较多的部分确定的,比如网站80%都会用页脚来声明版权等等。 相比于普通的标签,H5的一些新标签只是增强...
  • CSS将div居中

    万次阅读 2020-06-17 19:46:32
    通过margin 将div居中 margin:0 auto;

空空如也

1 2 3 4 5 ... 20
收藏数 4,800,781
精华内容 1,920,312
关键字:

article