Java正则表达式爬取网页,贴出完整代码
来源:互联网 发布:tomcat是java开发的吗 编辑:程序博客网 时间:2024/05/17 23:10
import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.htmlunit.HtmlUnitDriver; // HtmlUnitDriver 需要用到的包import java.util.regex.Matcher;import java.util.regex.Pattern;import java.util.List;import java.util.ArrayList;/*** 获取今日头条的某条资讯 (仅测试)* @author qyx* @return*/public void toutiao(){ /* * 这里使用的是ChromeDriver浏览器驱动,调用方法就会打开浏览器,执行速度慢,等待时间长 * 推荐项目中使用HtmlUnitDriver,伪浏览器,不打开浏览器,所有省去了渲染页面的时间,速度相对比较快,用法一样,注意加jar包 */ WebDriverdriver =new ChromeDriver(); driver.get("https://www.toutiao.com/a6458888925732667918/"); // 整个页面的原代码 Stringcontent = driver.getPageSource(); /** 这里代码类似于Python的re模块,re模块很强大,这里代码实现功能相当于Python正则表达式的“re.findall()” */ Matcherm = Pattern.compile("<h1.*?article-title\">(.*?)</h1>.*?<div.*?\"article-sub\">.*?<span>(.*?)</span>.*?<span>.*?</span>.*?</div>.*?<div.*?\"article-content\"><div>(.*?)</div></div>").matcher(content); List<String>result =new ArrayList<String>(); while (m.find()) { //通过正则表达式占位符来获取需要的内容 result.add(m.group(1));//标题 result.add(m.group(2));//来源 result.add(m.group(3));//带html标签的内容 } //通过类名称查找元素,我这里没有用到 // WebElement element = driver.findElement(By.className("article-content")); // System.out.println(element.getText()); /* * 关闭浏览器的方式区别 * driver.close() :关闭当前窗口,有父窗口的情况,仅关闭当前页面,父窗口保留 * driver.quit() :退出所有浏览器,有父窗口的情况,关闭所有页面,直接退出浏览器 */ driver.quit();//退出浏览器,这里用一个就好 // 说明已经获取到内容 if(result !=null &&result.size() >= 3){ //资讯标题 String title = result.get(0); //资讯来源 String source = result.get(1); //资讯内容(就是带html标签的富文本) String content = result.get(2); }else{ //没有获取到任何内容 } //成功获取到内容}
阅读全文
0 0
- Java正则表达式爬取网页,贴出完整代码
- java爬取网页内容 简单例子(1)——使用正则表达式
- 利用Matlab正则表达式爬取网页数据
- 第一次学会使用正则表达式爬网页,纪念下,下一步学习动态网页爬取
- JAVA正则表达式代码
- java学习之正则表达式网络爬取邮箱
- Java正则表达式替换完整单词
- 使用正则表达式优化网页代码
- 使用正则表达式优化网页代码
- 使用正则表达式优化网页代码
- 使用正则表达式优化网页代码
- 使用正则表达式优化网页代码
- [转]使用正则表达式优化网页代码
- 使用正则表达式优化网页代码
- 使用正则表达式优化网页代码
- 使用正则表达式优化网页代码
- 正则表达式的应用—爬取网页上的email地址
- python实例1--用正则表达式爬取静态网页上的图片
- 【爬虫】爬取淘宝商品的列表信息
- 【construct-binary-tree-from-preorder-and-inorder-traversal】
- vue 模板加载之后 执行js 渲染 DOM
- mysql千万级大数据SQL查询优化
- 26. Remove Duplicates from Sorted Array
- Java正则表达式爬取网页,贴出完整代码
- JAVA问题研究--基础
- 安卓内存泄漏和内存溢出区别
- 算法与数据结构-回溯法及八皇后问题求解
- Spring详解(五)------AOP
- SIFT算法详解
- 《机器学习实战》朴素贝叶斯
- HDU 4405 Aeroplane chess(概率DP求期望)
- JSONP跨域