寒假日报day8

两天不写代码手就生的很,更不要说这好几天了。。。

刚上手手生,显示熟悉自己以前写的代码,还好自己的注释写的多,一会就了解个大概。

说说回来之后学的东西:jsoup针对之前自己不能完美的结合selenium与webmaigc,导致自己停步不前,后来我单独使用selenium得到网页源码,在使用jsoup对String类型的网页源码处理,初步处理还是很,不顺利,因为它的相同属性太多,而找到下一页比较简单,但难就难在如何获取具体页面的内容,这个在一千使用webmagic的时候比较好处理,因为他的定位比较精细,现在使用jsoup呢,由于是刚上手接触,比较不熟悉,所以暂时还没解决。在未来几天我会加速处理,争取早日解决这个问题。

先来捧上我的学习视频链接:https://www.bilibili.com/video/av68932809?p=28

以下是我今天的代码:

 1 package com.ms.work;
 2 
 3 import org.jsoup.Jsoup;
 4 import org.jsoup.nodes.Document;
 5 import org.jsoup.select.Elements;
 6 import org.openqa.selenium.JavascriptExecutor;
 7 import org.openqa.selenium.chrome.ChromeDriver;
 8 
 9 
10 public class SeleniumForWork {
11 
12     
13     //执行函数
14     public static void main(String[] args) {
15         //启动ChromeDriver
16         ChromeDriver chromeDriver = new ChromeDriver();
17         //获取网址
18         chromeDriver.get("http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow");
19         //通过下一页获取网页内容
20         for(int i=1;i<2;i++)
21         {
22             System.out.println("第"+i+"次:");
23             getNextPageByNextButton(chromeDriver);
24             
25         }
26     }
27 
28     private static void getNextPageByNextButton(ChromeDriver chromeDriver) {
29         // TODO Auto-generated method stub
30         //通过js实现页面跳转
31         JavascriptExecutor driver_js=((JavascriptExecutor) chromeDriver);
32         driver_js.executeScript("pageTurning(3);");
33         //每次等待3秒
34         try {
35             Thread.sleep(3000);
36         } catch (InterruptedException e) {
37             // TODO Auto-generated catch block
38             e.printStackTrace();
39         }
40         //得到首页源码
41         String pageHtml=chromeDriver.getPageSource();
42         //pageHtml.
43         Document documentFirst = Jsoup.parse(pageHtml);
44         //System.out.println(document.getElementById("mailul").text());
45         Elements elementFirst= documentFirst.getElementsByClass("row clearfix  my-2 list-group o-border-bottom2 p-3");
46         System.out.println(elementFirst);
47         
48         //System.out.println(document.getElementsByClass("row clearfix  my-2 list-group o-border-bottom2 p-3").first().text());
49     }
50 }
View Code

在我看的视频里:

具体的jsoup知识点链接:

https://www.open-open.com/jsoup/

我呢,主要学习了针对String类型的HTML的解析,如下:

 

 这里我们选择第一个,括号里面已经提示我们这是String了,所以将源码以String类型传入,并转型为Document类型

 

 然后对这个Document类型处理:

 

 这里给我们提供了很多定位方法,由于首都之窗的页面结构较为复杂,所以我还没精准定位到,还有待研究。

明天继续。。。。

posted @ 2020-02-01 19:16  masuo  阅读(132)  评论(0编辑  收藏  举报