img src 本地图片_Java爬取简单的网页内容和图片

Java爬取简单的网页内容和图片

根据java网络编程相关的内容,使用jdk提供的相关类可以得到url对应网页的html页面代码。

针对得到的html代码,通过使用正则表达式即可得到我们想要的内容。

比如,我们如果想得到一个网页上所有包括“java”关键字的文本内容,就可以逐行对网页代码进行正则表达式的匹配。最后达到去除html标签和不相关的内容,只得到包括“java”这个关键字的内容的效果。

从网页上爬取图片的流程和爬取内容的流程基本相同,但是爬取图片的步骤会多一步。

需要先用img标签的正则表达式匹配获取到img标签,再用src属性的正则表达式获取这个img标签中的src属性的图片url,然后再通过缓冲输入流对象读取到这个图片url的图片信息,配合文件输出流将读到的图片信息写入到本地即可。

爬虫除这两种玩法外,还有着许多的应用,比如还可以爬取一个网页上所有的邮箱、电话号码等等。

运行效果:

这些内容是我从csdn首页中根据“你”这一个关键字得到的。

578f6bec9e2cfb43bf4390c6b31652ad.png

这些是我从一些网站得到的图片

f4e6f699981fa19147641beeed2fdbf0.png

问题:

在看似没有问题的爬取代码背后其实还是存在着许多问题的,该程序只是对爬虫最初级的应用。比如我发现部分内容的html在浏览器的“检查”功能中明明存在,但是在网页源代码中就没有了相关的内容。还有文本匹配的正则表达式部分也存在问题。

在img src属性中,有部分图片的url是不带协议的(如:https://),还有部分图片的url是不带图片后缀(jpg、png、gif...)的。前者导致程序无法解析这个url,后者导致无法给下载的图片统一采用原命名。

有时匹配到的img src值还会出现非图片url的情况。还有时从页面上获取到的内容是unicode编码值。以及部分网站做了反爬虫处理等...

以上问题因为我对java知识、web知识、网络知识还有正则的知识了解的很少,所以我目前都无法解决。

这些问题就导致最后真正从网页上爬下来的内容,只是原网页很少的一部分。

我相信在以后这些问题都是会被逐个解决的。

另外我在程序中使用了多线程的功能,以达到可以在多个网页“同时”爬取的效果。

下面给出该程序的源代码。

编译环境:

windows jdk 9 idea

代码:

//Main.java 主类

package 

//DownloadPictures.java 爬取图片类

package 

//GetTest.java 爬取文本内容类

package 

----

程序中还存在着许多问题,还请多多包涵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值