python爬蟲丨Selenium切換視窗控制代碼及呼叫Chrome瀏覽器
阿新 • • 發佈:2018-11-16
一. 呼叫Chrome瀏覽器
首先,假設通過Firefox()瀏覽器定向爬取CSDN首頁導航欄資訊,審查元素程式碼如下圖所示,在div class="menu"路徑的ul、li、a下,同時可以定位ul class="clearfix"。
程式碼如下所示:
然後轉換成chrome瀏覽器,只需要在
"C:Program Files (x86)GoogleChromeApplication"路徑下放置個chromedriver.exe驅動,再進行呼叫即可,程式碼如下所示:
執行結果如下圖所示:
二. 獲取當前控制代碼並切換視窗控制代碼
在使用Selenium爬取知識過程,通常會遇到_blank彈出新窗體,或窗體是彈出的那種情況,而且有的需要登入,如:新浪微博、微信公眾號、京東等,使用webdriver.Firefox()重新開啟新窗體是無法載入已有資訊的。這時候就需要通過獲取當前控制代碼再進行視窗切換。
這裡使用該方法實現獲取CSDN導航欄的每條導航的標題資訊,因為它是_blank彈出新窗體。需要注意每次視窗控制代碼移動都需要重新定位它們的主窗體。
核心程式碼:
如下圖所示:<a href="xxxx" target="_blank">極客頭條</a>
例項程式碼如下所示,它會依次開啟每個導航欄,在爬取關閉。
輸出結果如下所示:
PS:這段程式碼主要是讓你熟悉獲取當前窗體及切換窗體,真正爬蟲用到的時候是非常方便的,而且必須要使用。
三. 一段程式碼 線上筆記
下面這段程式碼是我的線上筆記,由於程式碼非常有用,所以我隱藏了些東西,但絕對好用,而且是結合上面的內容。同時,在登入過程中,我建議大家time.sleep()函式暫停,輸入驗證碼、掃描二維碼都是可行的。