Java做爬虫也很牛

首先我们封装一个Http请求的工具类,用HttpURLConnection实现,当然你也可以用HttpClient, 或者直接用Jsoup来请求(下面会讲到Jsoup)。

工具类实现比较简单,就一个get方法,读取请求地址的响应内容,这边我们用来抓取网页的内容,这边没有用代理,在真正的抓取过程中,当你大量请求某个网站的时候,对方会有一系列的策略来禁用你的请求,这个时候代理就排上用场了,通过代理设置不同的IP来抓取数据。

接下来我们随便找一个有图片的网页,来试试抓取功能

首先将网页的内容抓取下来,然后用正则的方式解析出网页的标签,再解析img的地址。执行程序我们可以得到下面的内容:

通过上面的地址我们就可以将图片下载到本地了,下面我们写个图片下载的方法:

这样就很简单的实现了一个抓取并且提取图片的功能了,看起来还是比较麻烦哈,要写正则之类的 ,下面给大家介绍一种更简单的方式,如果你熟悉jQuery的话对提取元素就很简单了,这个框架就是Jsoup。

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

添加jsoup的依赖:

使用jsoup之后提取的代码只需要简单的几行即可:

通过Jsoup.parse创建一个文档对象,然后通过getElementsByTag的方法提取出所有的图片标签,循环遍历,通过attr方法获取图片的src属性,然后下载图片。

Jsoup使用起来非常简单,当然还有很多其他解析网页的操作,大家可以去看看资料学习一下。

下面我们再来升级一下,做成一个小工具,提供一个简单的界面,输入一个网页地址,点击提取按钮,然后把图片自动下载下来,我们可以用swing写界面。

执行main方法首先出来的就是我们的界面了,如下:

屏幕快照 2018-06-18 09.50.34 PM.png

输入地址,点击提取按钮即可下载图片。

课程推荐

大数据时代,如何形成大数据。

大用户量,每天很多日志。

搞个爬虫,抓几十亿数据过来分析分析。

并不是只有Python才能做爬虫,Java照样可以。

今天带大家来写一个简单的图片抓取程序,将网页上的图片全部下载下来

image

本课程将带领大家一步一步编写爬虫程序,爬到我们想要的数据,非登陆的或者需要登陆的都爬下来。

学完本课程将学员培养成为合格的Java网络爬虫工程师,并能胜任相关爬虫工作;

学完能够熟练使用XPath表达式进行信息提取;

学完掌握抓包技术,掌握屏蔽的数据信息如何进行提取,自动模拟进行Ajax异步请求数据;

熟练掌握jsoup提取网页数据。

selenium进行控制浏览器抓取数据。

课程大纲

HttpURLConnection用法详解

静态网页抓取

jsoup解析提取网页信息

模拟ajax进行POST请求抓取数据

模拟登陆网站抓取数据

selenium抓取网页实战

htmlunit抓取动态网页数据

IP代理池构建

多线程抓取实战

WebMagic框架实战爬虫

抓取图书数据

图书数据存储mongodb

原价59的课程,目前只要19.9,学习课程请加我微信:

image

文章推荐

更多技术分享尽在微信群,加群请关注公众号,点击加群按钮。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180620G09OWQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券