成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

好用的 Puppeteer 輔助工具 Puppeteer Recorder

Faremax / 2908人閱讀

摘要:下圖是以點(diǎn)擊排行榜上用戶加關(guān)注為栗子錄制的腳本。注意事項目前這個項目還比較簡單,通過分析幾種生成代碼,這樣還是會有比較多的問題。這些問題本身也是開發(fā)前分析網(wǎng)頁甚至需要遇到的問題,改成自動腳本仍需注意。以下為部分源碼參考

Puppeteer

Puppeteer 是一個Node庫,它提供了一個高級API來控制DevTools協(xié)議上的ChromeChromium,常用于爬蟲、自動化測試等,你在瀏覽器手動完成的大多數(shù)事情都可以使用它來完成。

站內(nèi)有很多文章介紹Puppeteer,此處就不再介紹。

但是

但是無論是爬蟲還是自動化測試,你要寫Puppeteer腳本,首先你得分析網(wǎng)頁,并且講道理,每個網(wǎng)站還都不一樣,這就很尷尬。

Puppeteer Recorder

Puppeteer Recorder 是Chrome擴(kuò)展程序,可記錄你的瀏覽器交互并生成Puppeteer腳本。

下圖是以segmentfault點(diǎn)擊排行榜上用戶加關(guān)注為栗子錄制的腳本??瓷先ナ遣皇呛苡幸?guī)律,寫入cookie再改成for循環(huán),一個自動加關(guān)注的腳本就完成了。

注意事項

目前這個項目還比較簡單,通過分析幾種event生成代碼,這樣還是會有比較多的問題。
比如,最后得到selector和點(diǎn)擊前的selector不一致。selectorjs腳本動態(tài)生成,需要waitFor去等待等等。
這些問題本身也是開發(fā)前分析網(wǎng)頁甚至debug需要遇到的問題,改成自動腳本仍需注意。

以下為部分源碼

 _parseEvents (events) {
    console.debug(`generating code for ${events.length} events`)
    let result = ""
    for (let event of events) {
      const { action, selector, value, href, keyCode } = event
      switch (action) {
        case "keydown":
          result += this._handleKeyDown(selector, value, keyCode)
          break
        case "click":
          result += this._handleClick(selector, href)
          break
        case "goto*":
          result += `  await page.goto("${href}")
`
          break
        case "reload":
          result += `  await page.reload()
`
          break
      }
    }
    return result
  }
  _handleKeyDown (selector, value, keyCode) {
    if (keyCode === 9) return `  await page.type("${selector}", "${value}")
`
    return ""
  }
參考

Puppeteer
Puppeteer Recorder

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/108363.html

相關(guān)文章

  • 使用Node.js爬取任意網(wǎng)頁資源并輸出高質(zhì)量PDF文件到本地~

    摘要:上面只爬取了京東首頁的圖片內(nèi)容,假設(shè)我的需求進(jìn)一步擴(kuò)大,需要爬取京東首頁中的所有標(biāo)簽對應(yīng)的跳轉(zhuǎn)網(wǎng)頁中的所有的文字內(nèi)容,最后放到一個數(shù)組中。 showImg(https://segmentfault.com/img/bVbtVeV?w=3840&h=2160); 本文適合無論是否有爬蟲以及Node.js基礎(chǔ)的朋友觀看~ 需求: 使用Node.js爬取網(wǎng)頁資源,開箱即用的配置 將爬取到的...

    seasonley 評論0 收藏0
  • 使用Node.js爬取任意網(wǎng)頁資源并輸出高質(zhì)量PDF文件到本地~

    摘要:上面只爬取了京東首頁的圖片內(nèi)容,假設(shè)我的需求進(jìn)一步擴(kuò)大,需要爬取京東首頁中的所有標(biāo)簽對應(yīng)的跳轉(zhuǎn)網(wǎng)頁中的所有的文字內(nèi)容,最后放到一個數(shù)組中。 showImg(https://segmentfault.com/img/bVbtVeV?w=3840&h=2160); 本文適合無論是否有爬蟲以及Node.js基礎(chǔ)的朋友觀看~ 需求: 使用Node.js爬取網(wǎng)頁資源,開箱即用的配置 將爬取到的...

    xiaoxiaozi 評論0 收藏0
  • 使用Node.js爬取任意網(wǎng)頁資源并輸出高質(zhì)量PDF文件到本地~

    摘要:上面只爬取了京東首頁的圖片內(nèi)容,假設(shè)我的需求進(jìn)一步擴(kuò)大,需要爬取京東首頁中的所有標(biāo)簽對應(yīng)的跳轉(zhuǎn)網(wǎng)頁中的所有的文字內(nèi)容,最后放到一個數(shù)組中。 showImg(https://segmentfault.com/img/bVbtVeV?w=3840&h=2160); 本文適合無論是否有爬蟲以及Node.js基礎(chǔ)的朋友觀看~ 需求: 使用Node.js爬取網(wǎng)頁資源,開箱即用的配置 將爬取到的...

    wangym 評論0 收藏0
  • Puppeteer入門教程和實(shí)踐

    摘要:通過啟動時的命令行參數(shù)僅能實(shí)現(xiàn)簡易的啟動時初始化操作。是谷歌官方出品的一個通過協(xié)議控制的庫。使用和例子類似其他框架,通過操作實(shí)例來操作瀏覽器作出相應(yīng)的反應(yīng)。簡單例子的入門和實(shí)踐求贊,另外歡迎訪問我的博客 出現(xiàn)的背景 Chrome59(linux、macos)、 Chrome60(windows)之后,Chrome自帶headless(無界面)模式很方便做自動化測試或者爬蟲。但是如何和h...

    mindwind 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<