<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      動態頁面爬蟲前的準備:http://www.rzrgm.cn/maohuidong/p/18517953

      一:java maven添加依賴:

      <dependency>
      <groupId>us.codecraft</groupId>
      <artifactId>webmagic-core</artifactId>
      <version>0.7.4</version>
      </dependency>
      <dependency>
      <groupId>us.codecraft</groupId>
      <artifactId>webmagic-extension</artifactId>
      <version>0.7.4</version>
      </dependency>
      <!--selenium依賴-->
      <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>3.141.59</version>
      </dependency>

      二:重寫downLoader
      import org.openqa.selenium.chrome.ChromeDriver;
      import org.openqa.selenium.chrome.ChromeOptions;
      import org.openqa.selenium.remote.RemoteWebDriver;
      import us.codecraft.webmagic.downloader.Downloader;
      import us.codecraft.webmagic.*;
      import us.codecraft.webmagic.selector.PlainText;
      import org.openqa.selenium.Cookie;
      import java.util.Map;
      public class MyDownloader implements Downloader {
      //聲明驅動
      private RemoteWebDriver driver;

      public MyDownloader() {
      //第一個參數是使用哪種瀏覽器驅動,第二個參數是瀏覽器驅動的地址 --whitelisted-ips=""
      // System.setProperty("webdriver.chrome.driver","C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe");
      System.setProperty("webdriver.chrome.driver","E:\\chromedriver-win64\\chromedriver-win64\\chromedriver.exe");

      //創建瀏覽器參數對象
      ChromeOptions chromeOptions = new ChromeOptions();
      // 設置為 無界面瀏覽器 模式,若是不想看到瀏覽器打開,就可以配置此項

      //解決 403 出錯問題
      chromeOptions.addArguments("--remote-allow-origins=*");
      // chromeOptions.addArguments("--headless");
      chromeOptions.addArguments("--window-size=1440,1080");// 設置瀏覽器窗口打開大小
      this.driver = new ChromeDriver(chromeOptions); //創建驅動
      }

      /**
      * 由于selenium的默認域名為data;因此第一次必須跳轉到登錄頁,才能加入對應域名
      * @param request Request
      */
      @Override
      public Page download(Request request, Task task) {
      try {
      driver.get(request.getUrl());//第一次打開url,跳轉到登錄頁
      Thread.sleep(3000);//等待打開瀏覽器
      //獲取從process返回的site攜帶的cookies,填充后第二次打開url
      Site site = task.getSite();
      if (site.getCookies() != null) {
      for (Map.Entry<String, String> cookieEntry : site.getCookies()
      .entrySet()) {
      Cookie cookie = new Cookie(cookieEntry.getKey(),
      cookieEntry.getValue());
      driver.manage().addCookie(cookie);
      }
      //添加對應domain的cookie后,第二次打開url
      driver.get(request.getUrl());
      }
      Thread.sleep(2000);
      driver.executeScript("window.scrollTo(0, document.body.scrollHeight - 1000)");//需要滾動到頁面的底部,獲取完整的數據
      Thread.sleep(2000);//等待滾動完成
      //獲取頁面,打包成Page對象,傳給PageProcessor 實現類
      Page page = createPage(request.getUrl(), driver.getPageSource());
      //driver.close();//看需要是否關閉瀏覽器
      return page;
      } catch (InterruptedException e) {
      e.printStackTrace();
      }
      return null;
      }

      @Override
      public void setThread(int threadNum) {

      }

      //構建page返回對象
      private Page createPage(String url, String content) {
      Page page = new Page();
      page.setRawText(content);
      page.setUrl(new PlainText(url));
      page.setRequest(new Request(url));
      page.setDownloadSuccess(true);
      return page;
      }
      }
      三:重寫pipeLine
      import us.codecraft.webmagic.ResultItems;
      import us.codecraft.webmagic.Task;
      import us.codecraft.webmagic.pipeline.Pipeline;

      public class MyPipeline implements Pipeline {
      @Override
      public void process(ResultItems resultItems, Task task) {
      System.out.println("執行到這里了");
      }

      }


      四:

      import us.codecraft.webmagic.*;
      import us.codecraft.webmagic.pipeline.JsonFilePipeline;
      import us.codecraft.webmagic.processor.PageProcessor;
      import org.openqa.selenium.Cookie;
      import java.util.Set;

      public class MyPageProcessor implements PageProcessor {
      private Set<Cookie> cookies = null;//用來存儲cookie信息

      /**
      * 解析返回的數據page
      * @param page Downloader實現類下載的結果。
      */
      @Override
      public void process(Page page) {
      //向Pipeline對象中設置輸出結果,把解析的結果放到ResultItems中
      // page.putField("html", page.getHtml().all());
      page.putField("html",page.getHtml().xpath("http://li[@class='hotsearch-item']/a/span[@class='title-content-title']/text()").all());
      }

      //Site對象可以對爬蟲進行一些配置,包括編碼、抓取間隔、超時時間、重試次數等。
      private final Site site = new Site()
      .addHeader("user-agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36")//添加header信息,當對方網站識別爬蟲的時候,需要填寫
      .setDomain("example.com")//輸入你要爬的網頁域名,不帶http和https前綴
      .addCookie("token","auth")//通過F12看后臺自己cookie的token值,填進去
      .setTimeOut(2000);//設置超時時間

      @Override
      public Site getSite() {
      if(cookies!=null && !cookies.isEmpty()){
      //將獲取到的cookie信息添加到webmagic中
      for (Cookie cookie : cookies) {
      site.addCookie(cookie.getName(),cookie.getValue());
      }
      }
      return site;
      }
      //執行業務邏輯
      public static void main(String[] args) {
      Spider.create(new MyPageProcessor())
      // 初始訪問url地址
      .addUrl("https://www.baidu.com")
      .setDownloader(new MyDownloader())//可選擇使用自定義的
      // .addPipeline(new JsonFilePipeline("D:\\webmagic\\"))
      // .addPipeline(new MyPipeline()) //自定義的Pipeline,不設置的話,信息自動打印到console界面上
      .run();// 執行爬蟲
      }
      }
      posted on 2024-10-31 15:48  毛會懂  閱讀(322)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 上栗县| 久久成人 久久鬼色| 日本道之久夂综合久久爱| 无码任你躁久久久久久老妇| 国产精品白浆免费视频| 真人作爱90分钟免费看视频| 亚洲乱女色熟一区二区三区| 亚洲色大成网站WWW永久麻豆| 久久精品国产99久久久古代 | 激情六月丁香婷婷四房播| 无码精品人妻一区二区三区老牛| 久热99热这里只有精品| 性欧美videofree高清精品| 麻花传媒在线观看免费| 无码 人妻 在线 视频| 国产av一区二区三区久久| 人妻中文字幕亚洲精品| 最新国产精品亚洲| 亚洲国产午夜精品福利| 亚洲色帝国综合婷婷久久| 欧美午夜精品久久久久久浪潮| 与子敌伦刺激对白播放| 久久国产一区二区日韩av| 欧美野外伦姧在线观看| 久久精品不卡一区二区| 在线a亚洲v天堂网2018| 99久久国产综合精品女图图等你| 国产又色又爽又黄的视频在线 | 午夜成人理论无码电影在线播放| 永久无码天堂网小说区| 少妇激情a∨一区二区三区| 亚洲人成色777777老人头| 久久成人 久久鬼色| 美日韩精品一区三区二区| 蜜桃av亚洲精品一区二区| 亚洲精品中文字幕尤物综合| 丝袜老师办公室里做好紧好爽| 韩国无码AV片午夜福利| 梅河口市| 性人久久久久| 国内精品无码一区二区三区|