资讯专栏INFORMATION COLUMN

【图片抓取】002-简单一览

hizengzeng / 2752人阅读

摘要:图片抓取简单一览项目目的通过示例项目,初步接触,等常用工具,熟悉常用环境使用通过获取美食杰数据,使用来解析数据并抓取处理目标数据。示例中要识别出地址中的图片地址。

【图片抓取】002-简单一览

[toc]

项目目的

通过示例项目,初步接触spring boot,maven等常用工具,熟悉常用JAVA环境;使用通过httpclient获取美食杰html数据,使用jsoup来解析html数据并抓取处理目标数据。

流程图示意

读取配置,本章节示例中暂不读取配置;

使用httpclient读取html页面内容,使用jsoup解析页面内容;

处理步骤2中的内容,本章节中直接保存为文件;

判断是否继续解析,真实应用中大部分不会一次只读取一个url,本次示例只解析一次。

类图示意

Application main方法启动,主逻辑实现。

IProcesser 目标document处理接口。

DefaultProcesserImpl IProcesser实现类。

HttpUtils Http处理类。

主要步骤


示例中会通过我们的代码获取上图中红色标记的图片并保存在本地;

寻找目标;用浏览器打开网址http://www.meishij.net/zuofa/ganzhematitiantang_1.html(建议使用chrome),然后打开浏览器的开发者工具快捷键F12在窗口中选中elements页面,然后通过元素选择器选中目标图片,html代码会自动跳到图片的html代码;

编写jQuery选择器;此时我们已经找到目标的html代码,现在开始找到代码能识别的规则来获取数据,jsoup支持jquery选择器规则,我们可以做唯一测试,

;在开发者工具console行里实验通过$(".cp_headerimg_w img")获取的元素长度为1,既通过.cp_headerimg_w img就可以直接获取我们的目标图片位置;

最总我们通过以下代码我们就可以完成处理;


本次示例只是简单找到目标,保存目标。具体代码可参考示例代码git地址,现在其实还有很多可优化改进的地方,下次我们继续。

HttpClient

简单说来就是现在互联网上通信http协议应用比较广泛 别人都用,爱用不用,扩展性好;另外java原生包提供基本的http功能,但是不好用,所以产生了HttpClient工具包。
HttpClient支持标准Http1.0/1.1;支持get,post,put,delete,head等http方法;支持https;支持http代理等等;基本上你能想到的关于http的特性,它都支持。
在本示例中,简单使用httpclient来获取html页面字符串内容,后面示例会使用HttpClient的多线程,以及线程池功能。

jsoup

jsoup能够把html的文本内容解析成html Document,通过类似jQuery选择器的用法,能方便的找到想要html内容。示例中要识别出http地址中的图片地址。
TODO 配合美食节页面, 浏览器查找截图简单说明jQuery selector

其它

示例代码git地址

jQuery 参考手册 - 选择器

jsoup

HttpClient 4.5

注意

如果刚开始使用maven基本都会遇到一些问题:

maven编译慢,其实都是第一次慢,因为要下很多依赖包,最好通过配置maven国内镜像,可参考001-JAVA 基础环境。

编译莫名奇妙失败,可以通过确认C:Usersxxx.m2 epository目录下,是否存在pom依赖,或者把对应的依赖删掉重新maven编译下,

例如依赖是groupid:org.jsoup,artifactid:jsoup,则对应的jar目录是,既C:Users[xxx].m2 epository[groupid][artifactid][version],指删掉该依赖即可,不要全删掉repository,不然其它jar也要重新下。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68493.html

相关文章

  • 一步步爬取Coursera课程资源

    摘要:至此登录功能初步实现。为了方便我们快速定位到每节课的所有资源,可以把一节课的所有资源文件均命名为课名文件类型。可以看一下一个测试例子中的文件,部分内容如下到这里为止,我们已经成功完成爬取课程资源的目标,具体的代码放在上。 原文地址 有时候我们需要把一些经典的东西收藏起来,时时回味,而Coursera上的一些课程无疑就是经典之作。Coursera中的大部分完结课程都提供了完整的配套教学资...

    Simon_Zhou 评论0 收藏0
  • 比原链Bytom错误码一览

    摘要:错误编号内容注释非比原标准错误请求超时非法的请求体为网络错误编号内容注释区块链网络类型不匹配是签名相关的错误编号内容注释需要签名的个数超过实际需求签名的个数签名格式错误缺少主公钥主公钥重复为交易相关的错误构建交易错误编号内容注释资产余额不 0XX API错误 编号 内容 注释 BTM000 Bytom API Error 非比原标准错误 BTM001 Request t...

    Nosee 评论0 收藏0
  • 论用户体验测试:牛逼的功能千篇一律,好的用户体验万里挑一

    摘要:众所周知,测试过程会花费部分成本,比如产品的需求变更,开发的修复,用户体验测试也不例外用户体验环境从时间耗时和资源上都能体现。 此文已由作者吴艳秋授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 一、什么是用户体验 用户体验,英文叫做user experience。一个较常见的定义是指用户访问一个网站或者使用一个产品时的全部体验。他们的印象和感觉,是否成功,是否...

    Winer 评论0 收藏0
  • 【容器云 UK8S】日志监控方案:监控中心操作指南之监控中心概述,开启监控中心,添加监控目标和添加接

    摘要:添加接收人监控中心支持添加邮箱及微信两种告警,需要注意的是,添加邮箱告警的话,需要预先配置发件服务器。由于监控中心配置了一条告警规则,只要企业微信的信息填写正确,一般分钟以内均可从企业微信中获取到告警信息。监控中心概述监控中心是UK8S提供的产品化监控方案,提供基于Prometheus的产品解决方案,涵盖Prometheus集群的全生命周期管理,以及告警规则配置、报警设置等功能,省去了自行搭...

    Tecode 评论0 收藏0
  • SpringCloud(第 002 篇)简单电影微服务类(消费方,而提供方为用户微服务)

    摘要:添加简单电影微服务启动类简单电影微服务类消费方,而提供方为用户微服务。 SpringCloud(第 002 篇)简单电影微服务类(消费方,而提供方为用户微服务) - 一、大致介绍 微服务与微服务之间通过 Http 协议进行通信; 用户微服务作为提供方,电影微服务作为消费方,电影微服务消费用户微服务 ; 二、实现步骤 2.1 添加 maven 引用包 4.0.0 s...

    高璐 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<