正则表达式——抓取网页中的http及网络图片
来源:互联网 发布:js上传多张图片 编辑:程序博客网 时间:2024/04/30 02:46
**
正则表达式——抓取网页中的http及网络图片
**
最近网上有些朋友问我怎么用JAVA抓起网页中的image地址,我现在就给大家写一个实例,希望大家能通过这个实例学习到一点东西
需要抓取网页中http链接地址首先还需准备一个网站地址,我们就以hao123为例
https://www.hao123.com/
在这个网页中,我们要抓取这里面的href地址首先需要解析这个网站中的内容,把它转换成String字符串
@Test public void parsing_URL() { System.out.println(getHTMLText("https://www.hao123.com/","utf-8")); } /** * 获取网页文本 * */ public String getHTMLText(String htmlUrl,String charset){ StringBuilder sb = new StringBuilder(); try { URL url = new URL(htmlUrl); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),charset)); String result = ""; while ((result = br.readLine()) != null){ sb.append(result).append("\n"); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return sb.toString(); }
打印结果如下
然后我们在通过正则表达式来解析网站中存在的href对应的地址
@Test public void parsing_URL() { String content = getHTMLText("https://www.hao123.com/","gbk"); String regular = "href=\"([\\w\\s./:]+?)\""; List<String> list = regularParsingResult(content,regular); for (String str:list) { System.out.println(str); } } /** * 正则解析结果 */ public List<String> regularParsingResult(String content,String regular){ Pattern pattern = Pattern.compile(regular); Matcher matcher = pattern.matcher(content); List<String> list = new ArrayList<>(); while (matcher.find()){ list.add(matcher.group(1)); } return list; }
打印结果如下
现在我们来获取一些网页中的img标签下的图片地址
@Test public void parsing_URL() { String content = getHTMLText("https://www.hao123.com/","utf-8"); String regular = "<img[\\s\\S]+?src=\"(.+?)\""; List<String> list = regularParsingResult(content,regular); for (String str:list) { System.out.println(str); } } /** * 正则解析结果 */ public List<String> regularParsingResult(String content,String regular){ Pattern pattern = Pattern.compile(regular); Matcher matcher = pattern.matcher(content); List<String> list = new ArrayList<>(); while (matcher.find()){ list.add(matcher.group(1)); } return list; }
打印结果
获取网页完整代码
public void getHTMLTextComplete(String htmlUrl) throws InterruptedException { WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10); //设置webClient的相关参数 webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setCssEnabled(false); webClient.setAjaxController(new NicelyResynchronizingAjaxController()); //webClient.getOptions().setTimeout(50000); webClient.getOptions().setThrowExceptionOnScriptError(false); //模拟浏览器打开一个目标网址 HtmlPage rootPage = webClient.getPage(htmlUrl); System.out.println("为了获取js执行的数据 线程开始沉睡等待"); Thread.sleep(3000);//主要是这个线程的等待 因为js加载也是需要时间的 System.out.println("线程结束沉睡"); String html = rootPage.asText(); System.out.println(html); }
阅读全文
0 0
- 正则表达式——抓取网页中的http及网络图片
- 利用python正则表达式抓取网页中的图片到本地
- 正则表达式 抓取网页面上所有图片
- 正则表达式,抓取网页所有图片
- java正则表达式抓取网页图片
- 批量抓取网页代码中的HTTP和邮件地址,IO,正则表达式,抓网页源码
- 正则表达式抓取网页中的邮箱地址
- Python中运用正则表达式抓取网页图片
- ObjC利用正则表达式抓取网页内容(网络爬虫)
- ObjC利用正则表达式抓取网页内容(网络爬虫)
- ObjC利用正则表达式抓取网页内容(网络爬虫)
- ObjC利用正则表达式抓取网页内容(网络爬虫)
- ObjC利用正则表达式抓取网页内容(网络爬虫)
- ObjC利用正则表达式抓取网页内容(网络爬虫)
- JAVA语言用正则表达式抓取网页中的email
- 使用正则表达式抓取网页中的email地址
- 正则表达式抓取网页资源
- JAVA抓取网页的图片,JAVA利用正则表达式抓取网站图片
- Android在ListView中移除某个Item条目
- win10环境+pycharm+anaconda+python3.6+OpenCV3.3安装,ImportError: DLL load failed: 找不到指定的模块
- Linux(centos 7.3)中建SVN服务器
- MyBatis
- UITextfield
- 正则表达式——抓取网页中的http及网络图片
- 基于腾讯视频影视作品数据分析
- tcp三次握手四次挥手
- 数据结构实验之查找五:平方之哈希表
- IntelliJ Idea 一些常用技巧提高开发效率
- VC下修改单文档应用程序的标题
- First Hellow
- 高仿微信-微信EM开发流程--(1)项目介绍
- 原型式继承-Object.create()