国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用 Selenium 抓取網頁內容和模擬登入

mylxsw / 1620人閱讀

摘要:傳統的無法執行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網頁時,往往要設定詳細的來突破限制,編寫起來較為復雜。直接使用瀏覽器運行,像真正的用戶在操作。支持以下方式進行選擇元素各種庫對情況的檢測方法

傳統的 cURL 無法執行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網頁時,往往要設定詳細的 http header 來突破限制,編寫起來較為復雜。

Selenium簡介:

Selenium 是一個用于Web應用程序測試的工具(用處也不僅僅是測試)。
Selenium 直接使用瀏覽器運行,像真正的用戶在操作。支持較多的瀏覽器。

組件

Selenium IDE:Firefox插件,有錄制腳本的功能。支持自動錄制動作和自動生成其他語言的自動化腳本。

Selenium Remote Control (RC) :支持多種平臺(Windows,Linux)和多瀏覽器(IE,Firefox,Opera,Safari,Chrome),可以用多種語言(Java,Ruby,Python,Perl,PHP,C#)編寫用例。

Selenium Grid :允許Selenium-RC 針對規模龐大的測試案例集或者需要在不同環境中運行的測試案例集進行擴展。


實例:驅動 chrome 模擬登入淘寶,獲取頁面信息

1.前往項目主頁:SeleniumHQ 下載

Selenium Server (formerly the Selenium RC Server)

Third Party Browser Drivers NOT DEVELOPED by seleniumhq

(選擇chrome的driver)

Third Party Language Bindings NOT DEVELOPED by seleniumhq

(選擇PHP by Adam Goucher (SeHQ recommended php client))

2.打開 selenium

java -jar path_to_selenium.jar 
[-timeout 0] 
[-Dwebdriver.server.session.timeout=0] 
-Dwebdriver.chrome.driver="path_to_chrome_driver"
-browser [-timeout=0] [-browserTimeout=0]
browserName=chrome,[timeout=0]

如需長時間運行請酌情設置各 "[ ]" 中的超時時間

3.PHP代碼

execute(array("script" => "return (document.readyState != "complete")", "args" => array())));
}  //該函數會把腳本掛起直到等待到Ajax結束

require_once "webdriver/PHPWebDriver/__init__.php";
// 引入 selenium 的PHP封裝函數庫
// 下載地址:https://github.com/Element-34/php-webdriver
// 文檔中有各種操作瀏覽器方法,如獲取所有cookie等

$wd_host = "http://127.0.0.1:4444/wd/hub";
$web_driver = new PHPWebDriver_WebDriver($wd_host);

$session = $web_driver->session("chrome");

//設置超時時間
$session->implicitlyWait(5);
$session->setScriptTimeout(5);
$session->setPageLoadTimeout(15);

//打開連接
$session->open("http://login.m.taobao.com/login.htm?tpl_redirect_url=http://m.taobao.com");

//輸入驗證碼用,如果需要的話
sleep(5);

//請設置好帳號密碼
$session->element("css selector", "input[name=TPL_username]")->value(array("value" => str_split("your_username")));
$session->element("css selector", "input[name=TPL_password]")->value(array("value" => str_split("your_password")));

//模擬點擊登入按鈕
$elements = $session->element("css selector", ".c-btn-oran-big")->click();

//打開 m.taobao.com,此時已獲取到cookie
$session->open("http://m.taobao.com/");

//等待ajax加載完畢
waitForAjax();

$elements = $session->element("css selector", "body")->text();
//獲得了登入后ajax執行完畢時的頁面內容
?>

之后便可以按需對 $session 實例進行 element 方法的各種操作。

支持以下方式進行選擇元素

id

xpath

link text

partial link text

name

tag name

class name

css selector


PS:各種庫對Ajax情況的檢測方法

jQuery: "jQuery.active"

Prototype: "Ajax.activeRequestCount"

Dojo: "dojo.io.XMLHTTPTransport.inFlight.length"

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20604.html

相關文章

  • 使用 Selenium 進行模擬登入頁面內容的獲取

    摘要:傳統的無法執行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網頁時,往往要設定詳細的來突破限制,編寫起來較為復雜。直接使用瀏覽器運行,像真正的用戶在操作。支持以下方式進行選擇元素各種庫對情況的檢測方法 傳統的 cURL 無法執行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網頁時,往往要設定詳細的 http header 來突破限制,編寫起來較為復雜。 Selenium簡介: ...

    thursday 評論0 收藏0
  • Python3網絡爬蟲實戰---37、動態渲染頁面抓取:Selenium

    摘要:不過動態渲染的頁面不止這一種。再有淘寶這種頁面,它即使是獲取的數據,但是其接口含有很多加密參數,我們難以直接找出其規律,也很難直接分析來抓取。我們用一個實例來感受一下在這里們依然是先打開知乎頁面,然后獲取提問按鈕這個節點,再將其 上一篇文章:Python3網絡爬蟲實戰---36、分析Ajax爬取今日頭條街拍美圖下一篇文章:Python3網絡爬蟲實戰---38、動態渲染頁面抓取:Spla...

    zhjx922 評論0 收藏0
  • 使用selenium模擬瀏覽器抓取淘寶商品美食信息

    摘要:目標通過模擬瀏覽器抓取淘寶商品美食信息,并存儲到數據庫中。流程框架淘寶頁面比較復雜,含有各種請求參數和加密參數,如果直接請求或者分析將會非常繁瑣。 目標 通過Selenium模擬瀏覽器抓取淘寶商品美食信息,并存儲到MongoDB數據庫中。 流程框架 淘寶頁面比較復雜,含有各種請求參數和加密參數,如果直接請求或者分析Ajax將會非常繁瑣。Selenium是一個自動化測試工具,可以驅動瀏覽...

    djfml 評論0 收藏0
  • 從0-1打造最強性能Scrapy爬蟲集群

    摘要:包括爬蟲編寫爬蟲避禁動態網頁數據抓取部署分布式爬蟲系統監測共六個內容,結合實際定向抓取騰訊新聞數據,通過測試檢驗系統性能。 1 項目介紹 本項目的主要內容是分布式網絡新聞抓取系統設計與實現。主要有以下幾個部分來介紹: (1)深入分析網絡新聞爬蟲的特點,設計了分布式網絡新聞抓取系統爬取策略、抓取字段、動態網頁抓取方法、分布式結構、系統監測和數據存儲六個關鍵功能。 (2)結合程序代碼分解說...

    vincent_xyb 評論0 收藏0
  • Python入門網絡爬蟲之精華版

    摘要:學習網絡爬蟲主要分個大的版塊抓取,分析,存儲另外,比較常用的爬蟲框架,這里最后也詳細介紹一下。網絡爬蟲要做的,簡單來說,就是實現瀏覽器的功能。 Python學習網絡爬蟲主要分3個大的版塊:抓取,分析,存儲 另外,比較常用的爬蟲框架Scrapy,這里最后也詳細介紹一下。 首先列舉一下本人總結的相關文章,這些覆蓋了入門網絡爬蟲需要的基本概念和技巧:寧哥的小站-網絡爬蟲,當我們在瀏覽器中輸入...

    Bmob 評論0 收藏0

發表評論

0條評論

mylxsw

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<