精华内容
下载资源
问答
  •  班长(副班长)意见: 班主任意见: 本人签名: 日期:请假条怎么写学生简单二 老师: 您班学生孙xx,因突然高烧呕吐,要上医院治疗。今天不能到校上课。特此请假。 此致 敬礼! 学生家长: 年月日 由...
  • 辞职信怎么写简单 工具/原料 正规信纸,黑色碳素笔或钢笔。 步骤/方法 1写辞职信之前应准备好正规信纸和黑色碳素笔或钢笔。这样写出来的信件才会看起来比较规范。最好多准备些信纸,可以先打一遍草稿再誊抄一遍,...
  • 怎么写一张吸引人的寻物启事 物品丢失了,方法有很多,其中最为常见的方式便是写寻物启事,那么我们如何写一张吸引人的寻物启事,助我们寻物事半功倍。下面是关于怎么写一张吸引人的寻物启事的内容,欢迎阅读! ...
  • 简单的寻人启事怎么写 寻人启事是指亲人或同事走失或下落不明,希望公众帮助寻找而使用的应用文书。它可以帖在有关人员的失散地点或人口集中的繁华闹市,也可以在报纸上刊登或在广播、电台播放。张贴、刊登或播放...
  •  实习生简单辞职信范文怎么写1 尊敬的公司各位领导: 你们好, 首先,感谢魏总的知遇之恩,感谢副总的精心栽培,感谢主管王哥生活与工作上的悉心照顾,在此请原谅我身不由己的离开。 来圣威实习近一年了,在...
  •  实习生简单辞职信范文怎么写1 尊敬的公司各位领导: 你们好, 首先,感谢魏总的知遇之恩,感谢副总的精心栽培,感谢主管王哥生活与工作上的悉心照顾,在此请原谅我身不由己的离开。 来圣威实习近一年了,在...
  • 这样的数据格式,怎么简单方便点?想用正则取,但是正则不会。。。忘指教 {resultCode=1; resultInfo=suc; reserve1=anyType{}; id=6; name=家政服务; cost=0; explain=--; version=2;reserve2=[parent_...
  • 大banner的源代码怎么写,超简单

    千次阅读 2016-06-04 10:10:17
    现在很多网站的Banner图片都是全屏宽度的,这样的网站看起来显得很大气。这种Banner一般都是做一张很大的图片,然后在不同分辨率下都是显示图片的中间部分。实现方法如下: <...gt;...positi...

    现在很多网站的Banner图片都是全屏宽度的,这样的网站看起来显得很大气。这种Banner一般都是做一张很大的图片,然后在不同分辨率下都是显示图片的中间部分。实现方法如下:

    <html>
    <head>
    <title>Title</title>
    <style>
    .bannerbox {
    width:100%;
    position:relative;
    overflow:hidden;
    height:200px;
    }
    .banner {
    width:3000px;/*图片宽度*/
    position:absolute;
    left:50%;
    margin-left:-1500px;/*图片宽度的一半*/
    }
    </style>
    </head>
    <body>
    <divclass="bannerbox">
    <divclass="banner">
    <imgsrc="t1.jpg">
    </div>
    </div>
    </body>
    </html>
     
    把css中 .bannerbox 中 height 及 .banner 和 width 换成你banner图的大小,然后 .banner 中margin-left 的值改成banner图宽度的一半即可。
    展开全文
  • 二、网络爬虫的简单实现 1、定义已访问队列,待访问队列和爬取得URL的哈希表,包括出队列,入队列,判断队列是否空等操作 package webspider; import java.util.HashSet; import java.util.PriorityQueue; import ...

    一、网络爬虫的基本知识

    网络爬虫通过遍历互联网络,把网络中的相关网页全部抓取过来,这体现了爬的概念。爬虫如何遍历网络呢,互联网可以看做是一张大图,每个页面看做其中的一个节点,页面的连接看做是有向边。图的遍历方式分为宽度遍历和深度遍历,但是深度遍历可能会在深度上过深的遍历或者陷入黑洞。所以,大多数爬虫不采用这种形式。另一方面,爬虫在按照宽度优先遍历的方式时候,会给待遍历的网页赋予一定优先级,这种叫做带偏好的遍历。

    实际的爬虫是从一系列的种子链接开始。种子链接是起始节点,种子页面的超链接指向的页面是子节点(中间节点),对于非html文档,如excel等,不能从中提取超链接,看做图的终端节点。整个遍历过程中维护一张visited表,记录哪些节点(链接)已经处理过了,跳过不作处理。

    使用宽度优先搜索策略,主要原因有:

    a、重要的网页一般离种子比较近,例如我们打开的新闻网站时候,往往是最热门的新闻,随着深入冲浪,网页的重要性越来越低。

    b、万维网实际深度最多达17层,但到达某个网页总存在一条很短路径,而宽度优先遍历可以最快的速度找到这个网页

    c、宽度优先有利于多爬虫合作抓取。

    二、网络爬虫的简单实现

    1、定义已访问队列,待访问队列和爬取得URL的哈希表,包括出队列,入队列,判断队列是否空等操作

    package webspider;

    import java.util.HashSet;

    import java.util.PriorityQueue;

    import java.util.Set;

    import java.util.Queue;

    public class LinkQueue {

    // 已访问的 url 集合

    private static Set visitedUrl = new HashSet();

    // 待访问的 url 集合

    private static Queue unVisitedUrl = new PriorityQueue();

    // 获得URL队列

    public static Queue getUnVisitedUrl() {

    return unVisitedUrl;

    }

    // 添加到访问过的URL队列中

    public static void addVisitedUrl(String url) {

    visitedUrl.add(url);

    }

    // 移除访问过的URL

    public static void removeVisitedUrl(String url) {

    visitedUrl.remove(url);

    }

    // 未访问的URL出队列

    public static Object unVisitedUrlDeQueue() {

    return unVisitedUrl.poll();

    }

    // 保证每个 url 只被访问一次

    public static void addUnvisitedUrl(String url) {

    if (url != null && !url.trim().equals("") && !visitedUrl.contains(url)

    && !unVisitedUrl.contains(url))

    unVisitedUrl.add(url);

    }

    // 获得已经访问的URL数目

    public static int getVisitedUrlNum() {

    return visitedUrl.size();

    }

    // 判断未访问的URL队列中是否为空

    public static boolean unVisitedUrlsEmpty() {

    return unVisitedUrl.isEmpty();

    }

    }

    2、定义DownLoadFile类,根据得到的url,爬取网页内容,下载到本地保存。此处需要引用commons-httpclient.jar,commons-codec.jar,commons-logging.jar。

    package webspider;

    import java.io.DataOutputStream;

    import java.io.File;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;

    import org.apache.commons.httpclient.HttpClient;

    import org.apache.commons.httpclient.HttpException;

    import org.apache.commons.httpclient.HttpStatus;

    import org.apache.commons.httpclient.methods.GetMethod;

    import org.apache.commons.httpclient.params.HttpMethodParams;

    public class DownLoadFile {

    /**

    * 根据 url 和网页类型生成需要保存的网页的文件名 去除掉 url 中非文件名字符

    */

    public String getFileNameByUrl(String url, String contentType) {

    // remove http://

    url = url.substring(7);

    // text/html类型

    if (contentType.indexOf("html") != -1) {

    url = url.replaceAll("[\\?/:*|<>\"]", "_") + ".html";

    return url;

    }

    // 如application/pdf类型

    else {

    return url.replaceAll("[\\?/:*|<>\"]", "_") + "."

    + contentType.substring(contentType.lastIndexOf("/") + 1);

    }

    }

    /**

    * 保存网页字节数组到本地文件 filePath 为要保存的文件的相对地址

    */

    private void saveToLocal(byte[] data, String filePath) {

    try {

    DataOutputStream out = new DataOutputStream(new FileOutputStream(

    new File(filePath)));

    for (int i = 0; i < data.length; i++)

    out.write(data[i]);

    out.flush();

    out.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    /* 下载 url 指向的网页 */

    public String downloadFile(String url) {

    String filePath = null;

    /* 1.生成 HttpClinet 对象并设置参数 */

    HttpClient httpClient = new HttpClient();

    // 设置 Http 连接超时 5s

    httpClient.getHttpConnectionManager().getParams()

    .setConnectionTimeout(5000);

    /* 2.生成 GetMethod 对象并设置参数 */

    GetMethod getMethod = new GetMethod(url);

    // 设置 get 请求超时 5s

    getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);

    // 设置请求重试处理

    getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,

    new DefaultHttpMethodRetryHandler());

    /* 3.执行 HTTP GET 请求 */

    try {

    int statusCode = httpClient.executeMethod(getMethod);

    // 判断访问的状态码

    if (statusCode != HttpStatus.SC_OK) {

    System.err.println("Method failed: "

    + getMethod.getStatusLine());

    filePath = null;

    }

    /* 4.处理 HTTP 响应内容 */

    byte[] responseBody = getMethod.getResponseBody();// 读取为字节数组

    // 根据网页 url 生成保存时的文件名

    filePath = "f:\\spider\\"

    + getFileNameByUrl(url,

    getMethod.getResponseHeader("Content-Type")

    .getValue());

    saveToLocal(responseBody, filePath);

    } catch (HttpException e) {

    // 发生致命的异常,可能是协议不对或者返回的内容有问题

    System.out.println("Please check your provided http address!");

    e.printStackTrace();

    } catch (IOException e) {

    // 发生网络异常

    e.printStackTrace();

    } finally {

    // 释放连接

    getMethod.releaseConnection();

    }

    return filePath;

    }

    }

    3、定义HtmlParserTool类,用来获得网页中的超链接(包括a标签,frame中的src等等),即为了得到子节点的URL。需要引入htmlparser.jar

    package webspider;

    import java.util.HashSet;

    import java.util.Set;

    import org.htmlparser.Node;

    import org.htmlparser.NodeFilter;

    import org.htmlparser.Parser;

    import org.htmlparser.filters.NodeClassFilter;

    import org.htmlparser.filters.OrFilter;

    import org.htmlparser.tags.LinkTag;

    import org.htmlparser.util.NodeList;

    import org.htmlparser.util.ParserException;

    public class HtmlParserTool {

    // 获取一个网站上的链接,filter 用来过滤链接

    public static Set extracLinks(String url, LinkFilter filter) {

    Set links = new HashSet();

    try {

    Parser parser = new Parser(url);

    //parser.setEncoding("utf-8");

    // 过滤 标签的 filter,用来提取 frame 标签里的 src 属性所表示的链接

    NodeFilter frameFilter = new NodeFilter() {

    public boolean accept(Node node) {

    if (node.getText().startsWith("frame src=")) {

    return true;

    } else {

    return false;

    }

    }

    };

    // OrFilter 来设置过滤 标签,和 标签

    OrFilter linkFilter = new OrFilter(new NodeClassFilter(

    LinkTag.class), frameFilter);

    // 得到所有经过过滤的标签

    NodeList list = parser.extractAllNodesThatMatch(linkFilter);

    for (int i = 0; i < list.size(); i++) {

    Node tag = list.elementAt(i);

    if (tag instanceof LinkTag)// 标签

    {

    LinkTag link = (LinkTag) tag;

    String linkUrl = link.getLink();// url

    if (filter.accept(linkUrl))

    links.add(linkUrl);

    } else// 标签

    {

    // 提取 frame 里 src 属性的链接如

    String frame = tag.getText();

    int start = frame.indexOf("src=");

    frame = frame.substring(start);

    int end = frame.indexOf(" ");

    if (end == -1)

    end = frame.indexOf(">");

    String frameUrl = frame.substring(5, end - 1);

    if (filter.accept(frameUrl))

    links.add(frameUrl);

    }

    }

    } catch (ParserException e) {

    e.printStackTrace();

    }

    return links;

    }

    }

    4、编写测试类MyCrawler,用来测试爬取效果

    package webspider;

    import java.util.Set;

    public class MyCrawler {

    /**

    * 使用种子初始化 URL 队列

    *

    * @return

    * @param seeds

    *            种子URL

    */

    private void initCrawlerWithSeeds(String[] seeds) {

    for (int i = 0; i < seeds.length; i++)

    LinkQueue.addUnvisitedUrl(seeds[i]);

    }

    /**

    * 抓取过程

    *

    * @return

    * @param seeds

    */

    public void crawling(String[] seeds) { // 定义过滤器,提取以http://www.lietu.com开头的链接

    LinkFilter filter = new LinkFilter() {

    public boolean accept(String url) {

    if (url.startsWith("http://www.baidu.com"))

    return true;

    else

    return false;

    }

    };

    // 初始化 URL 队列

    initCrawlerWithSeeds(seeds);

    // 循环条件:待抓取的链接不空且抓取的网页不多于1000

    while (!LinkQueue.unVisitedUrlsEmpty()

    && LinkQueue.getVisitedUrlNum() <= 1000) {

    // 队头URL出队列

    String visitUrl = (String) LinkQueue.unVisitedUrlDeQueue();

    if (visitUrl == null)

    continue;

    DownLoadFile downLoader = new DownLoadFile();

    // 下载网页

    downLoader.downloadFile(visitUrl);

    // 该 url 放入到已访问的 URL 中

    LinkQueue.addVisitedUrl(visitUrl);

    // 提取出下载网页中的 URL

    Set links = HtmlParserTool.extracLinks(visitUrl, filter);

    // 新的未访问的 URL 入队

    for (String link : links) {

    LinkQueue.addUnvisitedUrl(link);

    }

    }

    }

    // main 方法入口

    public static void main(String[] args) {

    MyCrawler crawler = new MyCrawler();

    crawler.crawling(new String[] { "http://www.baidu.com" });

    }

    }

    至此,可以看到f:\spider文件夹下面已经出现了很多html文件,都是关于百度的,以“www.baidu.com”为开头。

    展开全文
  • 辞职信怎么写简单点 要辞职了,辞职信要怎么写比较简单呢?下面有小编整理的辞职信怎么写简单点,欢迎阅读! 辞职信怎么写简单点 公司人事部: 您好: 我因为要去美国留学,故需辞去现在的工作,请上级领导批准。...
  • 今天,我告诉大家一个技巧,简单地利用Word就可以快速实现电子手写签名。手写签名拍照首先,在一张白纸上下你的名字,然后拍照。可以看到,拍照的纸不可能是纯白的,后面要处理掉。然后,将该签字的图片插入Word...

    在工作中,我们常常需要签一些无关痛痒的承诺书、告知书等等,通常做法是将电子版文件打印出来后再手写签名,然后将材料扫描成电子图片。绕了一大圈又回到了电子版,费时费力还费纸。

    de16f55574aa73bbb6bd20c212ee89bb.png

    今天,我告诉大家一个技巧,简单地利用Word就可以快速实现电子手写签名。

    手写签名拍照

    首先,在一张白纸上写下你的名字,然后拍照。可以看到,拍照的纸不可能是纯白的,后面要处理掉。

    7a117b9b673e5fadf3299f41cfc87803.png

    然后,将该签字的图片插入Word需要签名的地方。调整大小,尽可能地将图片文字周边的空白裁剪掉,保留文字。

    9c5ae9c384612d6f8de6971fe08eab58.png

    处理签名图片

    接下来,要对该签名的图片进行处理,使得看起来不突兀。先选中图片,图片工具-格式-颜色-设置透明色-点击图片灰色背景,此操作可以把背景删除。

    e1cda0564a8aac5ad335038fef502a0e.png
    3ace446da04e6b3ebddc837af9634f65.png

    可以看到,背景被去除了,只剩下黑色的文字。

    最后,将该图片版式设置为"衬于文字上方"即可。

    aad898e736901d3d1bd66511ca560783.png

    我们来看一下效果怎么样。

    88495f2d3d66de08ad992cce089e5c80.png

    如何永久保存电子签名?

    电子签名如果是一次性的,那下次还要重新做太麻烦了,其实是可以永久保存在Word里面的。具体方法如下:

    选中签名图片,进入文件-选项-校对,点击右侧的自动更正选项按钮,在替换框中输入手写签名,然后在替换为旁边勾选带格式文本添加-确定

    3664cd3882ba0d67958123325b23a08e.png

    上面这个操作是什么意思呢?很简单,就是你用"手写签名"这几个字代替了签名图片,下次你每次打出"手写签名"时,就会跳出电子签名图片,这是永久保存在Word里面的,除非你去删除。

    可以看到,里面还有英文、中文的内容,左边是错误写法,右边是正确写法,这其实就是Word自带的文字纠正功能

    此功能在Word里面有效,我在WPS里面没有找到相应的功能。

    103988131b4f23346b706c9fea6d2dd2.png

    好了,这就是在Word里面制作和保存电子签名的一个小技巧,大家可以动手试一下吧。

    75738f88b1223994dd3b350ee62db079.gif
    展开全文
  • 财务会计实习日记怎么写 实习日记一 我被分到财务科会计下当了一个“小徒弟”。到了财务科,师傅把公司及财务科的一些基本情况给我介绍理一下,我也把自己的大学生活及学习情况简单的汇报了一下。第一天我没有...
  • 办理商务签证一般需要给大使馆一封邀请函,这里简单地举一个例子以图示的方式大致说一下这种邀请函应该包含哪些信息。先上一张图,等有时间再来补充一些说明的内容。整理不易,请阅后点赞!首先,你必须要明白签证...

    32b1372918b7f4c76eaa3e56df23ab90.png

    办理商务签证一般需要给大使馆写一封邀请函,这里简单地举一个例子以图示的方式大致说一下这种邀请函应该包含哪些信息。先上一张图,等有时间再来补充一些说明的内容。整理不易,请阅后点赞!

    首先,你必须要明白签证的目的,明白这里面的逻辑,明白了逻辑,做起事来就会得心应手。签证的目的是为了一国国民因为公私原因进入另一国停留一段时间的官方许可。所以申请签证的材料就要证明你的身份,因为不可能允许一国罪犯逃到另一国的,所以很多时候需要你出示经过公证的无犯罪记录证明的英文件。因为你拿了无犯罪记录,人家不知道真假,于是让司法系统的公证处去看下是不是真的,然后给你公证一下。因为人家看不懂中文,所以需要公证英文翻译件。 你要去旅游或者探亲或者干啥,你得证明你有这个财力去那个国家,所以有时需要你出示财产证明。你如果要去工作,你得证明你有某项技能,于是有时职业证书也是需要英文公证的。你去那个国家,语言不通咋行,于是有时会让你出示语言考试成绩。你如果有传染病,人家肯定不能让你入境啊,所以你要出示健康证和疫苗接种证明。

    一般而言,此类的邀请函都应该包含以下的内容,其实说到底就是你要说清楚谁邀请,谁被邀请,来了吃哪住哪,谁来承担费用。下面内容是邀请函一般会具备的:

    • Host’s full name 邀请者的全名
    • Host’s date of birth 邀请者出生日期
    • Host’s address and telephone number 邀请者在东道国的地址电话
    • Host’s occupation 邀请者职业
    • Host’s status 邀请者的身份地位 (可能会需要辅助证明文件)
    • Guest’s full name 受邀者全名
    • Guest’s date of birth 受邀者生日
    • Guest’s address and telephone number 受邀者地址电话
    • Guest’s relationship to the host 受邀者和邀请者的关系
    • The purpose of the trip 此行目的
    • Information on how long the guest intends to stay (specific dates)
    • 关于受邀者将要逗留多久的信息,精确到日。
    • Details on accommodation and living expenses
    • 受邀者的食宿安排花销细节
    • Signature of the host
    • 邀请者姓名,签名

    下面是一个邀请函的实例,其中相关的信息被用中文标出。

    0336e8fc5de09c7e8db0146967e831c4.png
    展开全文
  • 20XX主管药师个人工作计划怎么写 时光流逝,转眼间又到了xx年底了。我也任职本院主管药师一年了,现对全年的工作做简单的盘点和总结: 一:坚持国家医改精神,严格执行药品零差率制度,不让患者多花一分钱。根据...
  • 一张新型肺炎地区分布地图是怎么制作的?

    万次阅读 多人点赞 2020-02-01 17:12:24
    一张新型肺炎地区分布地图是怎么制作的? 前言 让我们从环境开始 创建工程,添加引用 GIS数据 剩下的工作就很简单了 叠加世界数据 叠加中国数据 调整可视范围 连接动态数据 样式化地图 在最后 前言 2020年刚...
  • ![图片说明]... 如图想把图片1和图片2拼接起来变成图片3应该怎么写代码 最简单的代码即可 比如image3 = def function(image1,image2) 主要是这个def function怎么写
  • 很多人以为只要自己埋头苦干搞内容就能做出点赞百万的抖音爆款视频;...就像下面这个视频一样,整个视频就是几张简单的图片组合。但是因为选取了爱情公寓中大家非常喜欢的子乔和美嘉的故事,最终获赞156.3...
  • 我在上一篇文章最后,给你留下的问题是怎么在两表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用insert … select 语句即可实现。 当然,为了避免对源表加读锁,更稳妥的方案是先将...
  • 五一期间本来打算一篇的,但是一直有各种事情拖着也没下来。今天继续是计划内的一篇文章collector。 1、用来做什么的? collectors直接翻译就是收集器。主要的作用是就是将流中的数据进行收集整理。collectors...
  • 最近迷上手写签 ...那么 也许这也是件简单的事情。   前情提要 : 有人问 能不能弄来 韩寒的字 的手写签 下午,我做了这样一件事: 先找了一个文本,然后将想要的部分裁剪出来。 找一张背景图。
  • 因为这个可以轻松实现扩容,方法也很简单的。和大家分享的是最新网盘扩容技术,相信大家用的最多的就是某网盘了,之前的老用户也是都拥有2T的基本容量,但是近两年来,百度压缩服务器,很多新用户注册的只有305G,...
  • 在数据库进行多张表的查询,必定会用到多表关联,只要是多表关联,就会产生笛卡儿积(什么是笛卡儿积:最简单的解释,就是你要关联的每表总记录的乘积),所以一定要关联条件。关联条件就是在所产生的笛卡儿积之间...
  • 在数据库进行多张表的查询,必定会用到多表关联,只要是多表关联,就会产生笛卡儿积(什么是笛卡儿积:最简单的解释,就是你要关联的每表总记录的乘积),所以一定要关联条件。关联条件就是在所产生的笛卡儿积之间...
  • 我在上一篇文章最后,给你留下的问题是怎么在两表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用 insert … select 语句即可实现。 当然,为了避免对源表加读锁,更稳妥的方案是先...
  • 说到图片加载框架,大家最熟悉的莫过于Glide了,但我却不推荐简历上熟悉Glide,除非你熟读它的源码,或者参与Glide的开发和维护。...给一个图片加载的场景,比如网络加载一张或多大图,你会怎么做...
  • 我在上一篇文章最后,给你留下的问题是怎么在两表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用 insert … select 语句即可实现。当然,为了避免对源表加读锁,更稳妥的方案是先将...
  • 经常遇到适配的问题,设计给的图片是PX的,我们用的是px,那么在安卓上怎么做适配呢?看这张图就行了(图片转载自25学堂)如图所示,大多时候设计会给ios的设计稿,一般是第二种,这种设计稿,1pt=2px,那么在安卓端...
  • 在有了这些初步想法之后,Jack开始动手编写代码,并用控制台程序了一个简单的测试代码,规划的大致菜单如下(下划线为手动输入部分): 超市管理系统V1.0 -----------------------------------------------------...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 559
精华内容 223
热门标签
关键字:

张怎么写简单