日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是Selenium

01

模擬瀏覽器:Selenium

我們知道,網頁會使用JAVA加載數據,對應于這種模式,可以通過分析數據接口來進行直接抓取,這種方式需要對網頁的內容、格式和Java代碼有所研究才能順利完成。但有時還會碰到另外一些頁面,這些頁面同樣使用AJAX技術,但是其頁面結構比較復雜,很多網頁中的關鍵數據由AJAX獲得,而頁面元素本身也使用Java來添加或修改,甚至于人們感興趣的內容在原始頁面中并不出現,需要進行一定的用戶交互(如不斷下拉滾動條)才會顯示。對于這種情況,為了方便,就會考慮使用模擬瀏覽器的方法來進行抓取,而不是通過“逆向工程”去分析AJAX接口,使用模擬瀏覽器的方法,特點是普適性強,開發耗時短,抓取耗時長(模擬瀏覽器的性能問題始終令人憂慮),使用分析AJAX的方法,特點則剛好與模擬瀏覽器相反,甚至在同一個網站、同一個類別中的不同網頁上,AJAX數據的具體訪問信息都有差別,因此開發過程投入的時間和精力成本是比較大的。如果碰到頁面結構相對復雜或者AJAX數據分析比較困難(如數據經過加密)的情況,就需要考慮使用瀏覽器模擬的方式了。

在Python/ target=_blank class=infotextkey>Python模擬瀏覽器進行數據抓取方面,Selenium永遠是繞不過去的一個坎。Selenium(意為化學元素“硒”)是瀏覽器自動化工具,在設計之初是為了進行瀏覽器的功能測試。Selenium的作用,直觀地說,就是使得操縱瀏覽器進行一些類似普通用戶的操作成為可能,如訪問某個地址、判斷網頁狀態、單擊網頁中的某個元素(按鈕)等。使用Selenium來操控瀏覽器進行的數據抓取其實已經不能算是一種“爬蟲”程序,一般談到爬蟲,自然想到的是獨立于瀏覽器之外的程序,但無論如何,這種方法有助于解決一些比較復雜的網頁抓取任務,由于直接使用了瀏覽器,麻煩的AJAX數據和Java動態頁面一般都已經渲染完成,利用一些函數,完全可以做到隨心所欲地抓取,加之開發流程也比較簡單,因此有必要進行基本的介紹。

Selenium本身只是個工具,而不是一個具體的瀏覽器,但是Selenium支持包括Chrome和Firefox在內的主流瀏覽器。為了在Python中使用Selenium,需要安裝selenium庫(仍然通過pip install selenium的方式進行安裝)。完成安裝后,為了使用特定的瀏覽器,可能需要下載對應的驅動。將下載到的文件放在某個路徑下。并在程序中指明該路徑即可。如果想避免每次配置路徑的麻煩,可以將該路徑設置為環境變量,這里就不再贅述了。

通過一個訪問百度新聞站點的例子來引入selenium庫,代碼如下:

運行上面的代碼,會看到Chrome程序被打開,瀏覽器訪問了百度首頁,然后跳轉到了百度新聞頁面,之后又選擇了該頁面的第一個頭條新聞,從而打開了新的新聞頁。一段時間后,瀏覽器關閉并退出。控制臺會輸出“百度一下,你就知道”(對應browser.title)和http://news.bAIdu.com/(對應browser.current_url)。這無疑是一個好消息,如果能獲取對瀏覽器的控制權,那么爬取某一部分的內容會變得如臂使指。

另外,selenium庫能夠提供實時網頁源碼,這使得通過結合Selenium和BeautifulSoup(以及其他上文所述的網頁元素解析方法)成為可能,如果對selenium庫自帶的元素定位API不甚滿意,那么這會是一個非常好的選擇。總的來說,使用selenium庫的主要步驟如下。

① 創建瀏覽器對象,即使用類似下面的語句:

② 訪問頁面,主要使用browser.get方法,傳入目標網頁地址。

③ 定位網頁元素,可以使用selenium自帶的元素查找API,即

還可以使用browser.page_source獲取當前網頁源碼并使用BeautifulSoup等網頁解析工具定位:

④ 網頁交互,對元素進行輸入、選擇等操作。如訪問豆瓣并搜索某一關鍵字(效果見圖1-9)的代碼如下。

■ 圖1-9使用Selenium操作Chrome進行豆瓣搜索的結果

在導航(窗口中的前進與后退)方面,主要使用browser.back和browser.forward兩個函數。

⑤ 獲取元素屬性。可供使用的函數方法很多,例如:

之前曾對Selenium的基本使用做過簡單的說明,有了網站交互(而不是典型爬蟲程序避開瀏覽器界面的策略)還能夠完成很多測試工作,如找出異常表單、html排版錯誤、頁面交互問題。

分享到:
標簽:Selenium
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定