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

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

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

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

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

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

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

运行效果:

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

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

问题:

在看似没有问题的爬取代码背后其实还是存在着许多问题的,该程序只是对爬虫最初级的应用。比如我发现部分内容的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 

----

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

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

  1. 循环爬取图片_Java爬取简单的网页内容和图片

    Java爬取简单的网页内容和图片 根据java网络编程相关的内容,使用jdk提供的相关类可以得到url对应网页的html页面代码. 针对得到的html代码,通过使用正则表达式即可得到我们想要的内容. ...

  2. python爬漫画(1)—— 如何爬取简单静态网页的图片

    之前写了一个python爬虫爬漫画视频的小程序,在此以一个系列的方式对其中用到的技术进行一个记录 系列一.简单的静态网页爬取 这里取的是kuku漫画网,http://comic.kukudm.com ...

  3. 美国网红python图片_爬取网红小姐姐图片(简单入门)

    简单爬虫 安装第三方库 请求页面 解析网页 保存图片 安装第三方库 安装第三方请求库(requests) pip install requests 请求页面 请求成功了 存在特殊情况:请求失败 原因八 ...

  4. python爬取贴吧图片_Python爬取贴吧多页图片

    Python爬取贴吧图片都只能爬取第一页的,加了循环也不行,现在可以了. #coding:utf-8 import urllib import urllib2 import re import os ...

  5. java图片小猫_java爬取猫咪上的图片

    1 package文件操作;2 3 importjava.io.ByteArrayOutputStream;4 importjava.io.File;5 importjava.io.FileOutpu ...

  6. 爬虫实战5:爬取全部穿越火线武器的图片以武器名称命名保存到本地文件

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 穿越火线官网 完整代码 运行结果 穿越火线官网 完整代码 import requests# 循环33次,官网武器库展示有33页 ...

  7. python3爬取豆瓣电影信息,图片,有源码(使用简单)

    首先下载安装python3安装教程 在控制台(Windows按 win+R)下载python插件: python -m pip install --upgrade pip # 更新 pip insta ...

  8. python爬虫知乎图片_python 爬取知乎图片

    先上完整代码 1 importrequests2 importtime3 importdatetime4 importos5 importjson6 importuuid7 from pyquery ...

  9. python爬虫,g-mark网站图片数据爬取及补坑

    应用python对g-mark网站图片数据爬取,同时但对于数据抓取失败的图片进行补坑(重新爬取操作),由于是日本网站,没有梯子访问的话,特别容易访问超时,比较合适的补坑操作是直接将数据采集到数据库,而 ...

最新文章

  1. σ(゚∀゚ ∬オレの性格だ
  2. VB.NET 从main函数里启动窗口
  3. sharemouse切窗口就锁定了什么原因_Excel表格如何锁定,被锁定的表格又该如何解除锁定呢?...
  4. latex字体_[LaTeX 引擎] XeLaTeX + macOS,通过字体名调用发行版字体
  5. 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc
  6. json格式数据,将数据库中查询的结果转换为json, 然后调用接口的方式返回json(方式一)...
  7. iOS开源照片浏览器框架SGPhotoBrowser的设计与实现
  8. micropython编程软件下载_MicroPython可视化拼插编辑器:让硬件编程更智能!
  9. 95-10-110-启动-AdminManager
  10. Windows配置GitBook
  11. 0基础自学前端好,还是报班培训好?
  12. Spark on yarn 动态资源配置
  13. 文件比较与同步工具——FreeFileSync
  14. 《数学之美》—图论和网络爬虫
  15. 微信小程序弹框wx.showModal如何修改样式
  16. 网易严选App感受WEEX 开发
  17. 我眼中的嵌入式是这样的!
  18. 如何选择正确的Node框架:Express,Koa还是Hapi?
  19. 台式电脑上没有显示计算机怎么办,电脑显示器无视频输入怎么办
  20. Centos7系统启动盘的正确安装姿势

热门文章

  1. Docker : Docker 查看容器 IP 地址以及相关信息
  2. 95-190-742-源码-WindowFunction-AllWindowFunction
  3. Class类和Object类及用法(一)
  4. 冷门的linux设备,你可能不知道的6个冷门linux实用命令
  5. java判断long 大于0,JAVA的一道习题:找出五个大于Long.MAX_VALUE的素数
  6. Net-DataGridView
  7. MySQL8.0.X卸载并重新安装并启动
  8. JavaEE 13个核心技术规范
  9. Git之同一台电脑连接多个远程仓库
  10. Json字符串转map集合