python爬蟲很強大,在爬蟲裡如何自動操控瀏覽器呢?

2021-01-08 python大大

概述:

python通過selenium爬取數據是很多突破封鎖的有效途徑。但在使用selenium中會遇到很多問題,本文就通過一問一答的形式來通熟易懂的普及如何通過selenium執行javascript程序,進而獲取動態執行後的網頁。如果你喜歡,歡迎轉發本文。

python爬蟲編程:用selenium執行javascript出錯了,該咋改?

問題:

小明開始學習python爬蟲變成了,仿佛整個網際網路的數據都快被他納入囊中了。今天,他又試圖完成一個高難度動作,他想讓selenium中抓取到以下HTML後,並自動執行js腳本,模仿滑鼠自動執行一個點擊動作。但令他很失望的是,居然,居然,沒用!

這是他執行的代碼。

browser.execute_script("document.getElement(By.xpath(\"//div[@class='vbseo_liked']/a[contains(@onclick, 'return vbseoui.others_click(this)')]\").click()")

它沒用,沒有反應。究竟做錯了什麼?

Python大大的答案:

要點回答:

使用selenium查找元素並將其傳遞execute_script()給單擊:

link = browser.find_element_by_xpath('//div[@class="vbseo_liked"]/a[contains(@onclick, "return vbseoui.others_click(this)")]')browser.execute_script('arguments[0].click();', link)

如果要從頭解決這問題,那麼以下就是需要了解它的一系列事情:

如何使用JavaScript模擬點擊?

這就是我做的東西。這很簡單,但它有效:

function eventFire(el, etype){ if (el.fireEvent) { el.fireEvent('on' + etype); } else { var evObj = document.createEvent('Events'); evObj.initEvent(etype, true, false); el.dispatchEvent(evObj); }}

用法:

eventFire(document.getElementById('mytest1'), 'click');

如何在Python裡進行模擬點擊呢?首先制定一個自定義的預期條件,等待元素被「執行」:

定義完畢後,如何在程序裡調用這個類呢?看看以下代碼:

看,如何在python裡通過selenium來爬取數據就是這麼簡單。要點掌握好,開始編制自己的爬蟲吧。

-節目預告

這就是我

韓國/歌舞

28簡介風靡全球的SM夢工廠(SM TOWN)的韓國偶像,他們大膽追夢,完成青春的無限可能!安七炫、寶兒、東方神起、SUPER JUNIOR、少女時代、SHINee、f(x)等心路歷程全紀錄。   本片忠實地收錄SM夢工廠旗下藝人於世界首屈一指的演唱會聖地:紐約麥迪遜花園廣場準備登臺演出前的真實畫面。   這是韓國首部紀錄實況的記錄片式演唱會電影,它展現站在舞臺上實現夢想的每個表演者不為人知的一面,是一篇訴說年輕藝人艱苦奮鬥與光輝榮耀的感人故事。 《IAM--這就是我》是一部紀錄了SM公司藝人奮鬥史的青春傳記,影片向觀眾展示了SM公司藝人華麗的舞臺演出以及平凡的日常生活,觀眾們可以通過這部影片看到SM公司藝人們為了在臺上的幾分鐘而在臺下所付出的努力和汗水。  一名SM公司工作人員表示,《I AM--這就是我》可以說是至今為止最完整紀錄SM公司藝人生活和工作的作品。  這部電影記錄包括KANG TA ,BOA,東方神起,SUPERJUNIOR,少女時代,SHINEE,F(x)等偶像從選拔開始,步步成長為全民偶像的歷程。電影展示了偶像們未紅時的青澀,也表現出他們青少時候的刻苦訓練,同時展示他們在拓展演藝事業的道路上克服內心的迷惘,勇敢地堅定自己的事業,他們是亞洲最敬業的偶像聯盟--SM家族,"是明星,是朋友,也是家人!"《I AM -這就是我》帶來一場無約束的熱血觀影,感受至真至純的青春。演員表安七炫飾 自己寶兒飾 自己東方神起百科目錄1.創作背景2.專輯曲目劇照百度指數 244查看30日趨勢

相關焦點

  • 小白如何入門 Python 爬蟲?
    本文針對初學者,我會用最簡單的案例告訴你如何入門python爬蟲!想要入門Python 爬蟲首先需要解決四個問題熟悉python編程了解HTML了解網絡爬蟲的基本原理學習使用python爬蟲庫一、你應該知道什麼是爬蟲
  • python 爬蟲如何突破登錄驗證
    我用 python 做爬蟲爬過不少數據,比如在 google play 爬應用信息;在 instragram, 500px 爬圖片;當然爬蟲的作用不止於此,比如定時去某個網站籤到,媽媽再也不用擔心我忘記籤到了這些網站支持遊客訪問,但要訪問特定內容,比如你收藏的圖片,或者要籤到,那前提是要登錄。
  • Python爬蟲入門(一):三種爬蟲模塊
    本來我是極其想用Java寫這個教程的(多用會,萬一以後就是Java程式設計師呢?),但是IDEA不提錯這毛病已經大半年了,Eclipse被我卸了,MyEclipse到期了,VScode倒是可以,但是它對jar包的引入比較迷……一言以蔽之就是懶,所以最後還是回到了python。
  • Python爬蟲技術路線?
    原標題:Python爬蟲技術路線?     對於初學者而言,Python爬蟲的技術路線應該怎麼取捨?     首先展示一下如何用python爬蟲requests庫進行爬取,requests庫是python爬蟲最基礎也必須掌握的庫。
  • PythonPython100個練手項目|github|瀏覽器|爬蟲|python|斷點_網易...
    新浪微博爬蟲分享(一天可抓取 1300 萬條數據)    12. 新浪微博分布式爬蟲分享    13. python爬蟲教程,帶你從零到一    14. 豆瓣讀書的爬蟲    15. 鏈家網和貝殼網房價爬蟲    16.
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    熟悉python編程剛開始入門爬蟲,初學者無需學習python的類,多線程,模塊和其他稍微困難的內容。我們要做的是查找適合初學者的教科書或在線教程,並花費十多天的時間,您可以對python的基礎知識有三到四點了解,這時候你可以玩玩爬蟲了!
  • 從0開始學Python爬蟲——Lesson2
    有一句從另一個方面講述了這個道理:人生苦短,請用Python,因為Python擁有強大的標準庫與第三方庫,你不用花時間去編寫,直接拿來用即可。本系列教程主要用的就是selenium庫來進行與瀏覽器交互,完成自動化處理,從而達到爬蟲的目的。
  • python 爬蟲之selenium可視化爬蟲
    文章目錄前文回顧快速入門元素定位頁面操作等待方式擴展程序加載私信小編01即可獲取Python大量資料之所以把selenium爬蟲稱之為可視化爬蟲主要是相較於前面所提到的幾種網頁解析的爬蟲方式selenium爬蟲主要是模擬人的點擊操作selenium驅動瀏覽器並進行操作的過程是可以觀察到的就類似於你在看著別人在幫你操縱你的電腦,類似於別人遠程使用你的電腦當然了,selenium也有無界面模式快速入門
  • 爬蟲基礎面試題(Python篇)
    請求頭裡的user-agent 構建user-agent池(作業系統、瀏覽器不同,模擬不同用戶) 3. 用於在網絡上採集數據的程序,可以用任何語言開發,python更加方便快捷高效一些。 爬蟲的目的:採集一些需要的數據。 為什麼python更適合寫爬蟲程序?python中封裝了很多爬蟲庫,如urllib ,re,bs,scrapy等,開發效率更高13:爬蟲的基本流程?
  • python爬蟲學習之路-抓包分析
    利用瀏覽器抓包,是爬蟲中的很實用的技能。在爬蟲編程之前,我們要對抓取的目標頁面有所了解,比如瀏覽器的這個請求這個頁面中間都經歷了什麼,數據是怎麼發送和返回的。抓包的作用我把抓包分析的作用簡單列一下:分析請求的headers等等,可以加載到你的爬蟲中,偽裝成瀏覽器。往往可以躲過簡單的反扒策略登錄狀態獲取,如果我們在瀏覽器中登錄,抓包拿到cookies,加到我們的爬蟲中,往往就可以繞過登錄這道坎,爬蟲直接登堂入室,抓取更有價值的數據post請求,例如頁面中通過post提交的表單。
  • python爬蟲反爬機制探索
    #python爬蟲篇#前幾次的爬蟲文章講到了去爬某度,說實話!某都對初學朋友還是很友好的!只要幾行代碼就搞定了,至少有東西呈現給你,是不是你需要內容的還需要你再下功夫!如何」偽裝「?我們向下看。首先這裡提到一個新名詞,用戶代理。百科中這樣說:User Agent中文名為用戶代理,簡稱 UA,它是一個特殊字符串頭,使得伺服器能夠識別客戶使用的作業系統及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。作為初學者,我們關心的是如何使用?
  • python 爬蟲如何讀取本機瀏覽器的 cookie
    上次分享了利用瀏覽器抓包獲得 cookie 使爬蟲可以突破網站的登錄校驗 本文以 chrome 瀏覽器為例,演示如何讀取瀏覽器存儲在磁碟上的 cookie 用於爬蟲cookie 位置AES 密鑰其值是 base64 編碼的以下給出從本機瀏覽器獲取
  • python爬蟲入門教程有哪些?適合的只有這三個
    python爬蟲是現在包括以後一種很重要的獲取數據的方式。當然,也因為網絡爬蟲本身也很有趣,所以很多人了解過一次爬蟲後,就產生了濃厚的興趣。爬蟲入門教程呢?Soup爬蟲、Mechanize模擬瀏覽器和Selenium模擬瀏覽器、Pyspider爬蟲框架、爬蟲與反爬蟲。
  • 零基礎小白如何快速入門python爬蟲?我用這篇文章告訴你
    python爬蟲!剛開始入門爬蟲,你甚至不需要去學習python的類、多線程、模塊之類的略難內容。找一個面向初學者的教材或者網絡教程,花個十幾天功夫,就能對python基礎有個三四分的認識了,這時候你可以玩玩爬蟲嘍!
  • 13天搞定python網絡爬蟲
    合法性爬蟲是利用程序進行批量爬取網頁上的公開信息,也就是前端顯示的數據信息。因為信息是完全公開的,所以是合法的。其實就像瀏覽器一樣,瀏覽器解析響應內容並渲染為頁面,而爬蟲解析響應內容採集想要的數據進行存儲。5.
  • Python爬蟲程序對比:普通爬蟲vs多線程爬蟲vs 框架爬蟲
    普通爬蟲實現 代碼簡單的說明: 1、標題的替換,因為有一些圖片的標題,其中會含有特殊字符,在創建文件的時候特殊字符是不能命名的,所以需要使用正則把有可能出現的特殊字符替換掉。
  • Python網絡爬蟲
    Python網絡爬蟲第一篇(一):為什麼要學習網絡爬蟲?大數據成為當今時代的熱門話題之一,在數據量爆發增長的網際網路時代,網站與用戶溝通實質為數據的交換。如果大量的數據得以分析,我們能夠對事件的看法,解決方案做出更好的決策。而網絡爬蟲技術,則是大數據分析領域的第一個環節。(二):能從網絡上爬取什麼數據?
  • 總算領會為什麼要選擇Python寫網絡爬蟲?
    Python具有強大而豐富的類庫,也經常被別人說是膠水語言,可以跟其它語言寫的模塊結合在一起。跨平臺,對Linux和windows都有不錯的支持。Python是一門非常簡單易學好用,同時功能強大的程式語言,具有豐富和強大的庫,開發效率特別高。不得不說,Python爬蟲對於我來說真是個神器。
  • python 爬蟲學習路線:從入門到進階
    本文依舊需要有一些python基礎,至少要求掌握python語法。前置條件:python開發環境首先,學習python爬蟲,需要會:自己安裝python,python庫以及自己的編輯器。這個前置條件呢,在涼拌以前的文章寫過,這裡涼拌就不再贅述,不會的同學可以點下面的連結看一看。
  • python爬蟲100個入門項目
    11新浪微博爬蟲分享(一天可抓取 1300 萬條數據)12新浪微博分布式爬蟲分享13python爬蟲教程,帶你從零到一14豆瓣讀書的爬蟲15鏈家網和貝殼網房價爬蟲6180s 影視資源爬蟲 - JianSo_Movie62各種爬蟲63心靈毒雞湯64糗事百科65python爬蟲的時候對Json數據的解析66秒爬,python爬蟲中的多線程,多進程