最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用selenium爬蟲抓取數(shù)據(jù)的基礎(chǔ)教程

 更新時間:2019年06月10日 11:46:48   作者:Refain  
這篇文章主要給大家介紹了關(guān)于如何利用selenium爬蟲抓取數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用selenium具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

寫在前面

本來這篇文章該幾個月前寫的,后來忙著忙著就給忘記了。

ps:事多有時候反倒會耽誤事。

幾個月前,記得群里一朋友說想用selenium去爬數(shù)據(jù),關(guān)于爬數(shù)據(jù),一般是模擬訪問某些固定網(wǎng)站,將自己關(guān)注的信息進行爬取,然后再將爬出的數(shù)據(jù)進行處理。

他的需求是將文章直接導(dǎo)入到富文本編輯器去發(fā)布,其實這也是爬蟲中的一種。

其實這也并不難,就是UI自動化的過程,下面讓我們開始吧。

準(zhǔn)備工具/原料

1、java語言

2、IDEA開發(fā)工具

3、jdk1.8

4、selenium-server-standalone(3.0以上版本)

步驟

1、分解需求:

需求重點主要是要保證原文格式樣式都保留:

將要爬取文章,全選并復(fù)制

將復(fù)制后的文本,粘貼到富文本編輯器中即可

2、代碼實現(xiàn)思路:

鍵盤事件模擬CTRL+A全選

鍵盤事件模擬CTRL+C復(fù)制

鍵盤事件模擬CTRL+V粘貼

3、實例代碼

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import java.awt.*;
import java.awt.event.KeyEvent;
import java.util.concurrent.TimeUnit;

/**
 * @author rongrong
 * Selenium模擬訪問網(wǎng)站爬蟲操作代碼示例
 */
public class Demo {
 private static WebDriver driver;
 static final int MAX_TIMEOUT_IN_SECONDS = 5;

 @BeforeClass
 public static void setUpBeforeClass() throws Exception {
  driver = new ChromeDriver();
  String url = "https://temai.snssdk.com/article/feed/index?id=6675245569071383053&subscribe=5501679303&source_type=28&content_type=1&create_user_id=34013&adid=__AID__&tt_group_id=6675245569071383053";
  driver.manage().window().maximize();
  driver.manage().timeouts().implicitlyWait(MAX_TIMEOUT_IN_SECONDS, TimeUnit.SECONDS);
  driver.get(url);
 }

 @AfterClass
 public static void tearDownAfterClass() throws Exception {
  if (driver != null) {
   System.out.println("運行結(jié)束!");
   driver.quit();
  }
 }

 @Test
 public void test() throws InterruptedException {
  Robot robot = null;
  try {
   robot = new Robot();
  } catch (AWTException e1) {
   e1.printStackTrace();
  }
  robot.keyPress(KeyEvent.VK_CONTROL);
  robot.keyPress(KeyEvent.VK_A);
  robot.keyRelease(KeyEvent.VK_A);
  Thread.sleep(2000);
  robot.keyPress(KeyEvent.VK_C);
  robot.keyRelease(KeyEvent.VK_C);
  robot.keyRelease(KeyEvent.VK_CONTROL);
  driver.get("https://ueditor.baidu.com/website/onlinedemo.html");
  Thread.sleep(2000);
  driver.switchTo().frame(0);
  driver.findElement(By.tagName("body")).click();
  robot.keyPress(KeyEvent.VK_CONTROL);
  robot.keyPress(KeyEvent.VK_V);
  robot.keyRelease(KeyEvent.VK_V);
  robot.keyRelease(KeyEvent.VK_CONTROL);
  Thread.sleep(2000);
 }
}

寫在后面

筆者并不是特別建議使用selenium做爬蟲,原因如下:

速度慢:

每次運行爬蟲都要打開一個瀏覽器,初始化還需要加載圖片、JS渲染等等一大堆東西;

占用資源太多:

有人說,把換成無頭瀏覽器,原理都是一樣的,都是打開瀏覽器,而且很多網(wǎng)站會驗證參數(shù),如果對方看到你惡意請求訪問,會辦了你的請求,然后你又要考慮更換請求頭的事情,事情復(fù)雜程度不知道多了多少,還得去改代碼,麻煩死了。

對網(wǎng)絡(luò)的要求會更高:

加載了很多可能對您沒有價值的補充文件(如css,js和圖像文件)。 與真正需要的資源(使用單獨的HTTP請求)相比,這可能會產(chǎn)生更多的流量。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Python實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之基本搜索詳解

    Python實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之基本搜索詳解

    這篇文章主要介紹了Python實現(xiàn)的數(shù)據(jù)結(jié)構(gòu)與算法之基本搜索,詳細分析了Python順序搜索、二分搜索的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • Python實現(xiàn)帶圖形界面的炸金花游戲(升級版)

    Python實現(xiàn)帶圖形界面的炸金花游戲(升級版)

    詐金花又叫三張牌,是在全國廣泛流傳的一種民間多人紙牌游戲,它具有獨特的比牌規(guī)則。本文將通過Python語言實現(xiàn)升級版的帶圖形界面的詐金花游戲,需要的可以參考一下
    2022-12-12
  • 一篇文章帶你學(xué)習(xí)Python3的高階函數(shù)

    一篇文章帶你學(xué)習(xí)Python3的高階函數(shù)

    這篇文章主要為大家詳細介紹了Python3的高階函數(shù),主要介紹什么是高階函數(shù),高階函數(shù)的用法以及幾個常見的內(nèi)置的高階函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python類中的魔法方法之 __slots__原理解析

    Python類中的魔法方法之 __slots__原理解析

    這篇文章主要介紹了Python類中的魔法方法之 __slots__詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 淺析python 定時拆分備份 nginx 日志的方法

    淺析python 定時拆分備份 nginx 日志的方法

    本文給大家分享python 定時拆分備份 nginx 日志的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-04-04
  • python Jupyter運行時間實例過程解析

    python Jupyter運行時間實例過程解析

    這篇文章主要介紹了python Jupyter運行時間實例過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • python實現(xiàn)批量圖片格式轉(zhuǎn)換

    python實現(xiàn)批量圖片格式轉(zhuǎn)換

    這篇文章主要為大家詳細介紹了python實現(xiàn)批量圖片格式轉(zhuǎn)換的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 兩種方法檢查Python中的變量是否為字符串

    兩種方法檢查Python中的變量是否為字符串

    在 Python 中,每個變量都有一個數(shù)據(jù)類型, 數(shù)據(jù)類型表示變量內(nèi)部存儲的數(shù)據(jù)類型,本文通過示例介紹兩種不同的方法來檢查 Python 中的變量是否為字符串,感興趣的朋友一起看看吧
    2023-11-11
  • python實現(xiàn)隨機漫步方法和原理

    python實現(xiàn)隨機漫步方法和原理

    在本篇文章里小編給大家整理了關(guān)于python如何實現(xiàn)隨機漫步的相關(guān)知識點內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • 安裝出現(xiàn):Requirement?already?satisfied解決辦法

    安裝出現(xiàn):Requirement?already?satisfied解決辦法

    最近pip install的時候報錯,一大串Requirement already satisfied,所以下面這篇文章主要給大家介紹了關(guān)于安裝出現(xiàn):Requirement?already?satisfied的解決辦法,需要的朋友可以參考下
    2022-08-08

最新評論

娄底市| 四川省| 顺平县| 平泉县| 黎平县| 三明市| 肇源县| 江油市| 八宿县| 保山市| 苍山县| 佛教| 东辽县| 林西县| 巴彦县| 霍邱县| 连云港市| 康马县| 耒阳市| 成安县| 丹棱县| 浦城县| 泌阳县| 峨山| 岑巩县| 嘉鱼县| 玉门市| 海阳市| 习水县| 和龙市| 志丹县| 桓仁| 普格县| 固原市| 遂平县| 甘洛县| 富蕴县| 新乡市| 岫岩| 洪洞县| 鄂托克旗|