自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

绕行的专栏

专注于Go语言深耕,Java和Python从业者

  • 博客(30)
  • 资源 (4)
  • 收藏
  • 关注

原创 Go语言进阶之路:并发爬虫,爬取空姐网所有相册图片

上次聊到了《Go语言正则表达式》和《Go语言手撸一个LRU缓存》,这次利用正则表达式来编写一个并发爬虫。说到爬虫,不得不提到前面写的《Python网络爬虫requests、bs4爬取空姐网图片》。这个爬虫很简洁,使用requests库发送http请求,使用bs4来解析html元素,获取所有图片地址。但是这个爬虫是单线程爬虫,速度太慢,一分钟只能爬下来300多张图片。所以,编写了Go语言的...

2020-05-02 23:28:51 1015

原创 Go语言进阶之路:手撸一个LRU缓存

一 什么是LRU缓存二 为什么我们要自己实现LRU缓存三 要实现LRU缓存,我们的诉求是什么四 怎么来实现4.1 设计Entry4.2 设计缓存

2020-04-25 10:32:00 648 1

原创 爬虫进阶:CrawlSpider爬取169ee全站美女图片

CrawlSpider前面,我们用了scrapy中的CrawlSpider爬取了糗事百科中大量段子数据。但是,qiubai这个爬虫没有充分利用CrawlSpider的优点。其实,在qiubai这个爬虫里面我们只是把CrawlSpider当做普通的Spider用而已。CrawlSpider继承自Spider,提供了Rule和LinkExtractor,使得爬虫框架能够自动按照规则提取Response中

2020-01-29 12:05:25 26529 2

原创 Python网络爬虫requests、bs4爬取空姐网图片

如之前的几篇文章(Python爬虫框架之Scrapy详解、Python爬虫框架Scrapy之爬取糗事百科大量段子数据),使用了Scrapy框架并且爬取了糗事百科的段子存入MongoDB中。Scrapy框架很好,也提供了很多扩展点,可以自己编写中间件处理Scrapy的Request和Response。但是可定制化或者可掌控性来说,还是自己写的爬虫更加强一些。如果写简单更加可控的爬虫,还是建议使用Pyt

2017-05-26 21:08:46 8183

原创 Python爬虫框架Scrapy之爬取糗事百科大量段子数据

如上篇文章《Python爬虫框架之Scrapy详解》(传送门:Python爬虫框架之Scrapy详解)所述。首先,准备scrapy环境:安装Python,pip,使用pip安装lxml和scrapy。scrapy startproject qiubai新建一个名为qiubai的scrapy爬虫项目。新建qiubai爬虫项目使用PyCharm打开,项目结构如图:定义QiubaiItem:新建项目

2017-05-24 13:27:39 6077

原创 Go语言进阶之路(九):时间处理和格式化输出

日期和时间是任何语言都必须处理好的事情。我们知道,在MySQL中,日期部分有date类型,时间部分有time类型,日期和时间都包含的类型有datetime类型(时间戳有timestamp类型)。比如,“2020-05-18 08:53:34.083”的日期部分就是“2020-05-18”,时间部分就是“08:53:34.083”。

2020-05-23 23:52:05 1700

原创 Go语言进阶之路(八):正则表达式

为什么要学正则表达式?因为利用正则表达式可以非常方便的匹配我们想要的任何字符串。比如,在一大堆字符串中,我们想找包含“Go语言”并且以“架构师”结尾的所有字符串,利用正则表达式就能非常方便快速的查找出来:

2020-04-29 09:12:20 2552

原创 Go语言进阶之路(七)文件读写os、io、bufio、ioutil

Go内置库中io.Reader/Writer是比较常用的接口。很多原生的接口都围绕这个系列的接口展开,在实际的开发过程中,你会发现通过这个接口可以在多种不同的io类型之间进行过渡和转化。围绕io.Reader/Writer,Go语言中有几个常用的实现: net.Conn, os.Stdin, os.File: 网络、标准输入输出、文件的流读取 strings.Reader:...

2020-04-19 14:19:23 3341

原创 Go语言进阶之路(六):内置JSON库和开源库gjson

Go语言内置了部分JSON函数,可以方便地在Go语言结构体实例和JSON字符串之间互相转换。这可比Java强多了。不过Go语言内置的json库功能比较鸡肋,只能在结构体和JSON之间相互转换,没办法满足在JSON字符串中进行条件匹配和搜索的功能。本文先介绍Go语言内置的json库,随后介绍了功能更强大的gjson库。

2020-04-18 16:13:24 866

原创 Go语言进阶之路(五):通道和goroutine、GPM

goroutine和channel的存在,让Go语言在并发编程很多情况下不需要考虑锁机制以及由此带来的各种问题。和Java多线程一样,Go应用能非常有效的利用多核CPU,并发执行的性能好。

2020-04-05 18:48:11 575

原创 Go语言进阶之路(四):标准错误和异常

Go语言内置的error接口,自定义的类型,只要实现该接口方法即可称为标准错误类型,

2020-03-30 22:54:08 468

原创 Go语言进阶之路(三):函数和接口

Go语言的函数用关键字func来定义,函数可以有返回值也可以没有返回值,有返回值的话,返回值写在函数参数的后面

2020-03-29 16:09:26 284

原创 Go语言进阶之路(二):字符串和指针

上一篇文章《Go语言进阶之路(一):变量、类型、数组、切片、字典和结构体》我们学习了Go语言基础的一些变量和条件控制语句,结构体等。这一篇主要学习一下Go语言中的字符串和指针。

2020-03-24 22:41:01 3698

原创 Go语言进阶之路(一):变量、类型、数组、切片、字典和结构体

Go语言中内置的基础类型和各类型的初始值为

2020-03-21 17:44:01 558

原创 有哪些必学的Python标准库和第三方库

Python正在成为时下最好最热门的数据挖掘、数据分析的编程语言。Python的的标准库又是Python学习中的重中之重。来看一下有哪些一定要学的Python标准库,有哪些建议学的Python第三方库(第三方框架)。这些标准库和第三方库一定会成为你学习Python路上的得力助手!必学标准库什么是标准库?就是Python语言自带的一些函数库。装好Python环境就能直接用的库。itert...

2020-02-26 21:26:53 1566

原创 聊聊Java BIO(同步阻塞IO)、NIO(非阻塞IO)、AIO(异步IO)

Java中有阻塞IO、非阻塞IO。阻塞IO可以理解为“一个连接对应于一线程”。非阻塞IO可以理解为“一个请求(一个请求里面可能会有多个连接【长连接短连接】)对应于一线程”。BIOJava中BIO也成为同步阻塞IO。同步阻塞IO模式下,服务器实现模式为一个连接对应一个线程,即:有连接请求从客户端发起时,服务器端就需要创建一个线程进行处理,如果有大量连接时,服务器就需要创建大量线程进行处理。当然...

2020-02-25 08:02:18 1017

转载 当在浏览器中输入 google.com 并且按下回车之后发生了什么

大致流程URL 解析 DNS 查询 TCP 连接 处理请求 接受响应 渲染页面一、URL 解析地址解析:首先判断你输入的是一个合法的 URL 还是一个待搜索的关键词,并且根据你输入的内容进行自动完成、字符编码等操作。HSTS由于安全隐患,会使用 HSTS 强制客户端使用 HTTPS 访问页面。详见:你所不知道的 HSTS。其他操作浏览器还会进行一些额外的操作...

2020-01-18 21:43:07 797

原创 Java的异常类在使用时有哪些坑?

异常类使用时的坑在catch中捕获到异常然后再把该异常重新抛出,则外层的catch捕获到的还是最原始的那个异常对象,如果在内部catch中,对异常对象调用 fillInStackTrace()方法,则调用这个方法的那一行变成了异常的新发生地。如,(看一下这两个throw的区别)想要在捕获到一个异常后抛出另一个异常,并且希望保留下原始的异常信息,这就是异常链。要实现异常链,Erro...

2020-01-17 22:53:45 306

原创 Java动态代理的原生实现和Spring AOP的实现

Java中的动态代理动态代理是动态地创建代理并动态地处理对所代理方法的调用。实现动态代理需要实现InvocationHandler接口,实现其invoke(object, method, args[])函数,传递的是一个代理实例(Proxy类库的$Proxy0)、方法和参数。Java动态代理的创建动态代理对象是用静态方法Proxy.newProxyInstance()方法创建的:...

2020-01-17 22:46:34 537

原创 Python爬虫框架之Scrapy详解

scrapy爬虫安装:首先,安装Python,pip,然后使用pip安装lxml和scrapy,这样就可以新建scrapy项目了。然后,在命令行使用scrapy startproject xxx命令新建一个名为xxx的scrapy爬虫项目。scrapy爬虫内部处理流程:我们在使用scrapy写爬虫,一般要继承scrapy.spiders.Spider类,在这个类中,有个数组类型的变量start

2017-05-20 23:25:27 11104 2

原创 Spring源码之JdbcTemplate分析

JdbcTemplate用过Spring开发的,ORM框架一般选择MyBatis或者Hibernate,不过,Spring对JDBC API的封装工具JdbcTemplate,也提供了很方便的操作,不需要再在使用jdbc api时捕获那么多受检异常,忍受那么多样板式的代码了。JdbcTemplate主要提供以下几类方法:execute方法:用于执行任何SQL语句,一般用于执行DDL语句;upda

2017-05-17 22:56:41 530

原创 Java多线程并发器之AbstractQueuedSynchronizer分析

AbstractQueuedSynchronizerAbstractQueuedSynchronizer是Java并发工具包中最重要的工具,它是一个抽象类,为Java的各种同步器,锁等提供了并发抽象,是由大名鼎鼎的Doug Lea完成。java.util.concurrent提供了很多并发工具类,其中很多都是基于AbstractQueuedSynchronizer实现的。如,ReentrantLoc

2017-05-17 08:33:15 638

原创 Java进程Runtime、Process、ProcessBuilder调用外部程序

通过Java执行系统命令,与cmd中或者终端上一样执行shell命令,最典型的用法就是使用Runtime.getRuntime().exec(command)或者new ProcessBuilder(cmdArray).start()。让我们看看Runtime、ProcessBuilder的详细解析和详细用法。RuntimeRuntime类是Java程序的运行时环境。不能new出一个Runtime对

2017-05-15 09:01:24 33820 1

原创 Java多线程之深入了解读写锁

背景和意义java.util.concurrent中有很多的同步工具类,比如ReentrantLock、Semaphore、CountLatch、CyclicBarrier、BlockingQueue、ConcurrentLinkedQueue等等,其中,很多使用的是排他锁的实现,即,同一时间只有一个线程能够访问共享的变量或临界区。因此,在某些场景下,大部分的同步工具类的性能都不尽人意。想想一下这种

2017-05-14 09:57:28 538

原创 Java项目中根据相对路径和绝对路径获取文件的方法 getResource(name)

首先,项目中文件分布情况如下,innerFile.txt位于test.test包下,innerInnerFile.txt位于test.test.inner包下,outterFile.txt位于包的根目录下,那么,在App类里,如何根据相对路径、绝对路径获取innerFile.txt、innerInnerFile.txt和outterFile.txt呢?class.getResource(name)先

2017-05-14 09:08:55 80347 4

原创 OkHttp详细用法

引入依赖<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.1.0</version></dependency>发起GET请求首先,根据url和参数构建get请求的完整url:private String builderGetUrl(S

2017-05-14 08:50:30 2059

原创 Java进程 vs 线程、线程池

Java进程 vs 线程、线程池1. 进程Java进程中Runtime类封装了进程运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。一般不能实例化一个Runtime对象,应用程序也不能创建自己的 Runtime 类实例,但可以通过 getRuntime 方法获取当前Runtime运行时对象的引用。一旦得到了一个当前的Runtime对象的引用,

2017-03-08 14:38:29 634

转载 win10启用管理员账户

故障现象:Win10系统内置的管理员账户被禁用,如何修复?解决方案:1、进入WINDOWS PE ,能正常访问到系统盘;2、进入到C:/WINDOWS/SYSTEM32/文件夹下,找到当前目录下的sethc.exe;3、把sethc.exe改名成sethc.exe.bak(备份这个文件);4、然后复制cmd.exe到当前目录并改名为sethc

2015-09-05 22:31:07 2571

转载 TeXworks中文乱码问题

转载自:http://blog.csdn.net/lydyangliu/article/details/8714151指定texworks的encoding是件要注意的事情。缺省是utf8,打开文件若发现乱码,千万不要修改并保存(结果就成了UTF8编码的文件了)。找个能够正常打开的编辑器,如Notepad++,在文件开头加入双引号之间的内容:"% !TEX encoding = S

2014-06-11 11:00:49 2325

原创 协方差、协方差矩阵及其意义

老会忘掉协方差的求法,还有一直不知道其代表的意义,比如l

2014-05-09 21:46:51 2154

spark学习 Spark: Cluster Computing withWorking Sets Matei

spark学习 Spark: Cluster Computing withWorking Sets Matei

2014-04-21

Java编程思想第四版完整中文高清版 非扫描

Java编程思想第四版完整中文高清版 非扫描版 超清晰

2014-04-21

JS直接访问数据Mysql

JS直接访问数据Mysql

2013-04-23

asp.net(c#)的flv播放器(附整个工程)(Flvplayer.swf)

asp.net(c#)的flv播放器(附整个工程),内含Flvplayer.swf,简洁实用,界面美观 具有全屏功能,具体的已经实现,需要的就下载下来试试看

2011-12-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除