摘要:下圖是以點擊排行榜上用戶加關注為栗子錄制的腳本。注意事項目前這個項目還比較簡單,通過分析幾種生成代碼,這樣還是會有比較多的問題。這些問題本身也是開發前分析網頁甚至需要遇到的問題,改成自動腳本仍需注意。以下為部分源碼參考
Puppeteer
Puppeteer 是一個Node庫,它提供了一個高級API來控制DevTools協議上的Chrome或Chromium,常用于爬蟲、自動化測試等,你在瀏覽器手動完成的大多數事情都可以使用它來完成。
站內有很多文章介紹Puppeteer,此處就不再介紹。
但是但是無論是爬蟲還是自動化測試,你要寫Puppeteer腳本,首先你得分析網頁,并且講道理,每個網站還都不一樣,這就很尷尬。
Puppeteer RecorderPuppeteer Recorder 是Chrome擴展程序,可記錄你的瀏覽器交互并生成Puppeteer腳本。
下圖是以segmentfault點擊排行榜上用戶加關注為栗子錄制的腳本。看上去是不是很有規律,寫入cookie再改成for循環,一個自動加關注的腳本就完成了。
目前這個項目還比較簡單,通過分析幾種event生成代碼,這樣還是會有比較多的問題。
比如,最后得到selector和點擊前的selector不一致。selector是js腳本動態生成,需要waitFor去等待等等。
這些問題本身也是開發前分析網頁甚至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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108363.html
摘要:上面只爬取了京東首頁的圖片內容,假設我的需求進一步擴大,需要爬取京東首頁中的所有標簽對應的跳轉網頁中的所有的文字內容,最后放到一個數組中。 showImg(https://segmentfault.com/img/bVbtVeV?w=3840&h=2160); 本文適合無論是否有爬蟲以及Node.js基礎的朋友觀看~ 需求: 使用Node.js爬取網頁資源,開箱即用的配置 將爬取到的...
摘要:上面只爬取了京東首頁的圖片內容,假設我的需求進一步擴大,需要爬取京東首頁中的所有標簽對應的跳轉網頁中的所有的文字內容,最后放到一個數組中。 showImg(https://segmentfault.com/img/bVbtVeV?w=3840&h=2160); 本文適合無論是否有爬蟲以及Node.js基礎的朋友觀看~ 需求: 使用Node.js爬取網頁資源,開箱即用的配置 將爬取到的...
摘要:上面只爬取了京東首頁的圖片內容,假設我的需求進一步擴大,需要爬取京東首頁中的所有標簽對應的跳轉網頁中的所有的文字內容,最后放到一個數組中。 showImg(https://segmentfault.com/img/bVbtVeV?w=3840&h=2160); 本文適合無論是否有爬蟲以及Node.js基礎的朋友觀看~ 需求: 使用Node.js爬取網頁資源,開箱即用的配置 將爬取到的...
摘要:通過啟動時的命令行參數僅能實現簡易的啟動時初始化操作。是谷歌官方出品的一個通過協議控制的庫。使用和例子類似其他框架,通過操作實例來操作瀏覽器作出相應的反應。簡單例子的入門和實踐求贊,另外歡迎訪問我的博客 出現的背景 Chrome59(linux、macos)、 Chrome60(windows)之后,Chrome自帶headless(無界面)模式很方便做自動化測試或者爬蟲。但是如何和h...
閱讀 2883·2021-11-24 09:39
閱讀 2455·2019-08-30 15:53
閱讀 3025·2019-08-30 13:47
閱讀 1296·2019-08-30 12:50
閱讀 1481·2019-08-29 16:31
閱讀 2642·2019-08-29 13:14
閱讀 1559·2019-08-29 10:55
閱讀 790·2019-08-26 13:32