Java爬虫第三篇:使用Jsoup 抓取文章

简介: Java爬虫第三篇:使用Jsoup 抓取文章

Java爬虫第三篇:使用Jsoup 抓取文章

概述

本章讲解Selenium模拟登录CSDN之后,使用Jsoup 抓取文章。

1. Jsoup maven配置

<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.11.3</version>
        </dependency>

2. 测试

public class Test{
  public static void main(String[] args) {
    String username = "xxxx@163.com";
        String password = "***********";
        String url = "https://passport.csdn.net/login";
        System.setProperty("webdriver.chrome.driver", SeleniumUtil.CHROMEDRIVERPATH );// chromedriver localPath
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("–no-sandbox");  //--start-maximized
        WebDriver driver = new ChromeDriver(chromeOptions);
        driver.get(url);
        SeleniumUtil.sleep(1000);
        WebElement mainSelectE = driver.findElement(By.cssSelector(".main-select"));
        List<WebElement> loginType = mainSelectE.findElements(By.tagName("a"));
        bgm:for (int i = 0; i < loginType.size(); i++) {
            WebElement aelement = loginType.get(i);
            if( aelement.getText().indexOf("帐号登录") != -1){
                aelement.click();
                System.out.println("切换到帐号登录....");
                break bgm;
            }
        }
        System.out.println("继续操作....");
        SeleniumUtil.sleep(1000);
        WebElement formE = driver.findElement(By.cssSelector("form"));
        WebElement nameE = formE.findElement(By.id("all"));
        WebElement passwordE = formE.findElement(By.id("password"));
        nameE.sendKeys(username);
        formE.findElement(By.id("password-number")).sendKeys(password);
        formE.findElement(By.cssSelector("button")).click();
        driver.get("https://blog.csdn.net/forezp/column/info/15197/3");
        SeleniumUtil.sleep(1000);
        //Selenium获取网页内容
        WebElement body =  driver.findElement(By.cssSelector("body"));
        //转化为Jsoup文档处理
        Document doc = Jsoup.parse( body.getAttribute("outerHTML") );
        Elements es = doc.select("ul.column_article_list>li");
        for ( Element e  : es ){
            String absHref = e.select("a").attr("abs:href"); // "http://www.open-open.com/"
            String titile = e.select("h2.title").text();
            String desc = e.select("div.column_article_desc").html();
            System.out.println( "absHref:" + absHref );
            Document detailDoc = Jsoup.connect(absHref).get();
            Elements detaile = detailDoc.select("div#content_views");
            String content = detaile.html();
            System.out.println( "titile:" + titile );
            System.out.println( "desc:" + desc );
            System.out.println( "content:" + content );
            System.out.println( );
         }
  }
}

3. 结果

目录
相关文章
|
17天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
34 3
|
28天前
|
数据采集 缓存 Java
Python vs Java:爬虫任务中的效率比较
Python vs Java:爬虫任务中的效率比较
|
13天前
|
数据采集 Python
python爬虫抓取91处理网
本人是个爬虫小萌新,看了网上教程学着做爬虫爬取91处理网www.91chuli.com,如果有什么问题请大佬们反馈,谢谢。
24 4
|
15天前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第19天】本文介绍了Java编程中重要的数据结构——Map,通过问答形式讲解了Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的使用和性能优化技巧,适合初学者和进阶者学习。
39 4
|
2月前
|
数据采集 存储 监控
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
本文探讨了如何利用 PHP 的 `set_time_limit()` 与爬虫工具的 `setTrafficLimit()` 方法,结合多线程和代理 IP 技术,高效稳定地抓取百度云盘的公开资源。通过设置脚本执行时间和流量限制,使用多线程提高抓取效率,并通过代理 IP 防止 IP 封禁,确保长时间稳定运行。文章还提供了示例代码,展示了如何具体实现这一过程,并加入了数据分类统计功能以监控抓取效果。
65 16
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
|
23天前
|
数据采集 Web App开发 JavaScript
Selenium爬虫技术:如何模拟鼠标悬停抓取动态内容
本文介绍了如何使用Selenium爬虫技术抓取抖音评论,通过模拟鼠标悬停操作和结合代理IP、Cookie及User-Agent设置,有效应对动态内容加载和反爬机制。代码示例展示了具体实现步骤,帮助读者掌握这一实用技能。
Selenium爬虫技术:如何模拟鼠标悬停抓取动态内容
|
26天前
|
数据采集 XML 前端开发
Jsoup在Java中:解析京东网站数据
Jsoup在Java中:解析京东网站数据
|
2月前
|
数据采集 存储 JavaScript
构建您的第一个Python网络爬虫:抓取、解析与存储数据
【9月更文挑战第24天】在数字时代,数据是新的金矿。本文将引导您使用Python编写一个简单的网络爬虫,从互联网上自动抓取信息。我们将介绍如何使用requests库获取网页内容,BeautifulSoup进行HTML解析,以及如何将数据存储到文件或数据库中。无论您是数据分析师、研究人员还是对编程感兴趣的新手,这篇文章都将为您提供一个实用的入门指南。拿起键盘,让我们开始挖掘互联网的宝藏吧!
|
1月前
|
数据采集
爬虫案例—抓取找歌词网站的按歌词找歌名数据
爬虫案例—抓取找歌词网站的按歌词找歌名数据
|
1月前
|
数据采集 存储
爬虫案例—根据四大名著书名抓取并存储为文本文件
爬虫案例—根据四大名著书名抓取并存储为文本文件