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. 结果

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用Jsoup抓取携程旅游网的数据头歌可以通过以下步骤实现: 1. 导入Jsoup库:首先需要在项目中导入Jsoup库,可以通过在项目的依赖中添加Jsoup的Maven依赖或者手动将Jsoup库导入到项目中。 2. 创建连接:使用Jsoup库中的`connect()`方法创建一个与携程旅游网连接的对象。例如,可以使用以下代码创建一个与携程旅游网首页连接的对象: ```java String url = "https://www.ctrip.com/"; Connection connection = Jsoup.connect(url); ``` 3. 发送请求并获取HTML内容:使用连接对象的`get()`方法发送请求并获取携程旅游网的HTML内容。例如,可以使用以下代码发送请求并获取HTML内容: ```java Document document = connection.get(); ``` 4. 解析HTML内容:使用Jsoup库中提供的方法解析HTML内容,获取到所需的数据。例如,可以使用以下代码获取携程旅游网首页的标题: ```java String title = document.title(); ``` 5. 提取数据:根据需要,使用Jsoup提供的选择器、过滤器等方法提取页面中的特定数据。例如,可以使用以下代码提取携程旅游网首页的所有图片链接: ```java Elements imgElements = document.select("img"); for (Element imgElement : imgElements) { String imgUrl = imgElement.attr("src"); // 进一步处理图片链接... } ``` 以上是简单的示例,通过以上步骤可以使用Jsoup抓取携程旅游网的数据。根据具体的需求和页面结构,可以使用更多的Jsoup方法来提取所需的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青花锁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值