亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用 Selenium 抓取網(wǎng)頁內(nèi)容和模擬登入

mylxsw / 1693人閱讀

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

傳統(tǒng)的 cURL 無法執(zhí)行頁面中的瀏覽器腳本,并且在抓取一些對爬蟲有限制的網(wǎng)頁時,往往要設(shè)定詳細的 http header 來突破限制,編寫起來較為復(fù)雜。

Selenium簡介:

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

組件

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

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

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


實例:驅(qū)動 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]

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

3.PHP代碼

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

require_once "webdriver/PHPWebDriver/__init__.php";
// 引入 selenium 的PHP封裝函數(shù)庫
// 下載地址: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");

//設(shè)置超時時間
$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);

//請設(shè)置好帳號密碼
$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執(zhí)行完畢時的頁面內(nèi)容
?>

之后便可以按需對 $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"

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/20604.html

相關(guān)文章

  • 使用 Selenium 進行模擬登入頁面內(nèi)容的獲取

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

    thursday 評論0 收藏0
  • Python3網(wǎng)絡(luò)爬蟲實戰(zhàn)---37、動態(tài)渲染頁面抓取:Selenium

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

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

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

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

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

    vincent_xyb 評論0 收藏0
  • Python入門網(wǎng)絡(luò)爬蟲之精華版

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

    Bmob 評論0 收藏0

發(fā)表評論

0條評論

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