Java----网络爬虫
文章平均质量分 79
_inkrain
要像一张邮票,坚持一件事情直到你到达目的地。
展开
-
Java网络爬虫(七)--实现定时爬取与IP代理池
注:对代码及思路进行了改进—Java网络爬虫(十一)–重构定时爬取以及IP代理池(多线程+Redis+代码优化)定点爬取当我们需要对金融行业的股票信息进行爬取的时候,由于股票的价格是一直在变化的,我们不可能手动的去每天定时定点的运行程序,这个时候我们就需要实现定点爬取了,我们引入第三方库quartz的使用:package timeutils;import org.quart原创 2017-04-27 20:22:21 · 23561 阅读 · 7 评论 -
Java网络爬虫(十三)--PhantomJs的使用及性能优化
先说点题外话吧,在我刚开始学习爬虫的时候,有一次一个学长给了我一个需求,让我把京东图书的相关信息抓取下来。恩,因为真的是刚开始学习爬虫,并且是用豆瓣练得手,抓取了大概500篇左右的影评吧,然后存放到了mysql中,当时觉得自己厉害的不行,于是轻松的接下了这个需求。。。然后信心满满的开始干活。。首先查看网页源代码。。。???我需要的东西源代码里面没有!!!然后去问了学长。学长给我说,这是AJAX原创 2017-10-10 22:29:57 · 10833 阅读 · 8 评论 -
Java网络爬虫(十二)--使用tcpdump和Wireshark进行网络抓包与分析
最近打算通过学校的某某系统抓取一下每个学生的个人信息,由于需要进行模拟登录,所以就要对登录页面进行post参数的提交。但是在进行网络抓包的过程中,使用chrome自带的网络抓包分析工具(也就是F12)发现每次在进行登录提交表格之后,chrome并不能将所需要提交的参数表单抓取下来。(评论区提供的依然使用chrome的方法也可以解决这个问题)问了学长原因,觉得是登录成功之后因为页面的跳转需要进行原创 2017-09-24 16:00:03 · 4316 阅读 · 4 评论 -
Java网络爬虫(十一)--重构定时爬取以及IP代理池(多线程+Redis+代码优化)
一直觉得自己之前写的使用定时抓取构建IP代理池实在过于简陋,并且有一部分的代码写的并不合理,刚好最近又在学习多线程,就将之前的代码进行了重构,也方便对抓取代理ip有需求的人。之前自己写的那篇文章就不删除了,里面用到了MySQL以及循环调用ip的方法(一些东西也是值得了解的。取其精华,弃其糟粕吧),大家有兴趣的可以看一下(最主要的还是不舍得访问量,哈哈)。注:由于xici代理网的ip代理并不是很原创 2017-08-10 17:16:02 · 12410 阅读 · 7 评论 -
Java网络爬虫(十)--使用多线程提升爬虫性能的思路小结
在开始说正事之前我先给大家介绍一下这份代码的背景,以免大家有一种雾里看花的感觉。在本系列的前几篇博客中有一篇是用多线程进行百度图片的抓取,但是当时使用的多线程是非常粗略的,只是开了几个线程让抓取的速度提升了一些(其实提升了很多),初步的使用了一下线程,这篇博客将线程的使用进行了一些深入。项目背景博主这次的需求是抓取一些淘宝的数据,在此之前我们需要掌握基本的并行爬虫的相关知识。在这里原创 2017-06-14 15:04:26 · 11570 阅读 · 9 评论 -
Java网络爬虫(八)--使用多线程进行百度图片的抓取
声明:如需转载本篇文章,请进行私聊并在文章首处注明出处,本代码未经授权不可用于获取商业价值,否则后果将由自己承担。这次的需求大概是从百度图片里面抓取任意的分类的图片,考虑到有些图片的资源不是很好,并且由于百度搜索越到后面相关度会越来越低,所以我将每个分类要爬的数据量控制在了600,实际爬下来,每个分类也就是500左右的图片。实现架构先来看一下本次代码的实现架构: htmlparse里面的两原创 2017-05-21 02:05:27 · 5405 阅读 · 8 评论 -
Java网络爬虫(六)--JSON数据的解析
有时候,我们抓取下来一个html页面,发现浏览器页面可以显示的东西在html源码中却没有,这时候我们就要考虑服务器是以JSON格式将这部分数据发送到客户端的,对于这种情况的处理方式我们一般是在chrome的开发者工具中找到对应的JSON包,然后构建其URL,对JSON数据所在的源地址进行访问,然后使用一些工具对JSON数据进行解析,从而得到我们想要的东西。阿里巴巴FastJson是一个Json处理工原创 2017-04-02 20:42:45 · 7381 阅读 · 0 评论 -
Java网络爬虫(五)--使用Jsoup的select语法进行元素查找
使用Jsoup进行元素的查找有两种方法。有使用DOM方法来遍历一个文档,也有使用选择器语法来查找元素,而后者类似于CSS或jQuery的语法来查找和操作元素。对于这两个方法到底使用哪个感觉好上手我觉得因人而异,在我尝试了两种方法之后我还是选择select,所以我就只总结select的语法使用了,对于DOM方法感兴趣的,可以看一下这一篇博客:【使用JSOUP实现网络爬虫】使用DOM方法来遍历一个文档,原创 2017-03-30 20:33:34 · 25702 阅读 · 7 评论 -
Java网络爬虫(四)--使用Jsoup解析html
在前面几章,我已经对HttpClient的基本使用进行了总结,而且对于一般性的需要登录的网站大家怎么进行模拟登录也有了一定的了解,也就是说,通过前几篇的学习,你已经学会了通过HttpClient进行网站的访问,并且知道怎么返回网页的html,可是爬虫的需求一般都是在html中提取我们想要的信息,我们得到了网页的html,现在该怎么办呢?使用Jsoup,对html进行解析,可以说html的结构在Jso原创 2017-03-30 18:26:41 · 3477 阅读 · 3 评论 -
Java网络爬虫(二)--HttpClient设置头部信息与模拟登录策略
在网络爬虫中我们经常需要设置一些头部信息,使我们进行网页抓取的行为更加像浏览器的行为,并且我们有时需要将头部信息设置正确,才能得到正确的数据,要不然有可能得到和浏览器所展示的页面有出入的信息。设置头部还可以进行模拟登录,我们可以设置cookie,来得到登录后的页面,有些时候一些网站需要进行登录才能进行一些操作,并且有可能登录后的网站和没有进行登录的所产生的数据有所不同,这个时候我们就有必要添加头部c原创 2017-03-26 23:44:56 · 17324 阅读 · 21 评论 -
Java网络爬虫(一)--使用HttpClient请求资源并抓取响应
觉得自己是时候该沉淀了。。。说起来,自学Java网络爬虫也有两个月了,期间走了很多弯路,我也不仅对Java和Python这两们同样都能搞爬虫的语言但与之相关的文档与书籍的差别感到惊讶,对于Java来说,目前我知道的有关介绍Java网络爬虫这方面的书籍只有《自己动手写网络爬虫》,对于其中的内容,我觉得是晦涩难懂,不适合入门,并且内容相对来说感觉有点过时,我觉得我必须开个博客专栏,对于之后想要入门Jav原创 2017-03-26 21:55:26 · 8793 阅读 · 14 评论 -
Java网络爬虫--正则表达式之详解贪婪、逐步、独吐量词
除过正则表达式的基本概念与特性还有使用方法之外,我们在解析html的时候,如果要进行字符串的匹配,必须还要熟悉正则表达式之中量词的使用法则,今天我们就来谈谈贪婪、逐步、独吐这三种量词的使用。贪婪量词我们先来看一下经常使用的贪婪量词都有哪些: X?: X项目(项目也可以理解为X代表的变量,项目比较准确)出现一次或没有。 X*: X项目出现0次或多次。 X+: X项目至少出现1次。原创 2017-05-28 23:01:57 · 1742 阅读 · 0 评论 -
Java网络爬虫(三)--如何判断自己的模拟登录是否成功
“怎么判断模拟登陆是否成功”我最开始的时候也问过这个问题,当时对所有流程都还不熟悉,而且写的代码没一个能成功的,就给自己提了一大堆的问题,也在论坛上发表提问,在这个过程中,我遇到了很多的情况,好多都能作为判断的依据,这里跟大家分享一下:1.代码不报错但是完全没有输出的,这是没得怀疑的了,有可能是你代码中的逻辑错误或者网址输错或者根本不能访问网站等等,这些是隐式的错误,而像语法错误,关键词拼写错误等等转载 2017-03-28 17:48:33 · 4787 阅读 · 0 评论 -
Java网络爬虫--HTML DOM(HTML 基础)
最近一直在学习Java方面的网络爬虫,然后要使用Jsoup解析html页面(htmlparse已经不建议使用了),但是对于Jsoup中的很多类和方法都很疑惑,查阅相关资料后发现使用Jsoup之前首先要了解一些HTML DOM方面的知识,就决定将网上的HTML DOM相关知识进行汇总,方便和我有相同兴趣爱好的伙伴学习。不管是学习网络爬虫还是HTML DOM,都需要有一定的HTML基础,我推荐大家看看H原创 2017-02-27 23:16:24 · 5751 阅读 · 0 评论