1.概述 极客时间(https://time.geekbang.org/),想必大家都知道的,上面有很多值得大家学习的课程,如下图: 本文主要内容 使用webmagic采集极客时间中某个专栏课程生成html 使用webmagic采集视频课程的文件到本地 直接看一下最终效果图 专栏课程生成本地html 视频课程中的视频文件采集到本地 2.专栏课程视频采集 大家请先买某个课程,然后才可以采集 1.登录极客时间 登录地址: https://time.geekbang.org/ 2.极客时间中获取专栏i…
1. java爬虫系列第一讲-爬虫入门(爬取动作片列表) 2. java爬虫系列第二讲-爬取最新动作电影<海王>迅雷下载地址 3. java爬虫系列第三讲-获取页面中绝对路径的各种方法 4. java爬虫系列第四讲-采集"极客时间"专栏文章.视频专辑 5. java爬虫系列第五讲-如何使用代理防止爬虫被屏蔽?…
1.并发 分工:如何高效地拆解任务并分配给线程 同步:线程之间如何协作 互斥:保证同一时刻只允许一个线程访问共享资源 Fork/Join 框架就是一种分工模式,CountDownLatch 就是一种典型的同步方式,而可重入锁则是一种互斥手段. 2.可见性.原子性.有序性 (1)可见性:缓存导致 (2)原子性:线程切换 count+=1 (3)有序性:编译优化 3.java内存模型 (1)可见性:缓存导致-----按需禁用缓存 (2)有序性:编译优化-----按需禁用 volatile int x…
1. 目标 使用webmagic爬取动作电影列表信息 爬取电影<海王>详细信息[电影名称.电影迅雷下载地址列表] 2. 爬取最新动作片列表 获取电影列表页面数据来源地址 访问http://m.ady01.com/rs/film/list/1/1,F12开发者模式中找到页面数据来源地址 地址是:http://m.ady01.com/rs/film/listJson/1/1 访问:http://m.ady01.com/rs/film/listJson/1/1 抓取列表信息 使用git拉取代码:ht…
1. 概述 java爬虫系列包含哪些内容? java爬虫框架webmgic入门 使用webmgic爬取 http://ady01.com 中的电影资源(动作电影列表页.电影下载地址等信息) 使用webmgic爬取 极客时间 的课程资源(文章系列课程 和 视频系列的课程) 本篇文章主要内容: 介绍java中好用的爬虫框架 java爬虫框架webmagic介绍 使用webgic爬取动作电影列表信息 2. java中好用的爬虫框架 如何判断框架是否优秀? 容易学习和使用,网上对应的学习资料比较多,并且…
在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天就来实战下,用他们来抓取酷狗音乐网上的 Top500排行榜音乐.接下来的代码中除了会用到HttpClient和Jsoup之外,还会用到log4j和ehcache,分别用来记录日志和实现缓存,如果看官对这两个不是很熟悉的话,请自行百度,现在网上的入门实例有很多,我就不专门记笔记了. 那为什么会想到爬取…
在上一篇随笔<Java爬虫系列二:使用HttpClient抓取页面HTML>中介绍了怎么使用HttpClient进行爬虫的第一步--抓取页面html,今天接着来看下爬虫的第二步--解析抓取到的html. 有请第二步的主角:Jsoup粉墨登场.下面我们把舞台交给Jsoup,让他完成本文剩下的内容. ============华丽的分割线============= 一.Jsoup自我介绍 大家好,我是Jsoup. 我是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供…
爬虫要想爬取需要的信息,首先第一步就要抓取到页面html内容,然后对html进行分析,获取想要的内容.上一篇随笔<Java爬虫系列一:写在开始前>中提到了HttpClient可以抓取页面内容. 今天就来介绍下抓取html内容的工具:HttpClient. 围绕下面几个点展开: 什么是HttpClient HttpClient入门实例 复杂应用 结束语 一.什么是HttpClient 度娘说: HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最…
Java Thread系列(四)线程通信 一.传统通信 public static void main(String[] args) { //volatile实现两个线程间数据可见性 private volatile static List list = new ArrayList(); Thread t1 = new Thread(new Runnable() { // (1) public void run() { try { for(int i = 0; i <10; i++){ list…
极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间 笔记体会: 方案一,事务相对较长,则占用锁的时间较长,会导致其他客户端等待资源时间较长.方案二,串行化执行,将相对长的事务分成多次相对短的事务,则每次事务占用锁的时间相对较短,其他客户端在等待相应资源的时间也较短.这样的操作,同时也意味着将资源分片使用(每次执行使用不同片段的资源),可以提高并发性.方案三,人为自己制造锁竞争…