當前位置:編程學習大全網 - 源碼下載 - webdriveragent的源代碼分析

webdriveragent的源代碼分析

壹般我們使用python的第三方庫請求和框架scrapy來抓取線上資源,但是無法抓取javascript渲染的頁面。此時我們使用web自動化測試工具Selenium+ PhantomJS,抓取javascript渲染的頁面。這是壹個簡單的爬行。

環境建設

準備工具:python3.5,selenium,phantomjs

我的電腦已經安裝了Python3.5。

安裝Selenium

1

pip3安裝selenium

安裝幻像

根據系統環境下載phantomjs。下載後,解壓phantomjs.exe到python的腳本文件夾。

用selenium+phantomjs實現壹個簡單的爬蟲

1

2

從selenium導入web驅動程序

driver = webdriver。幻象()

Driver.get('') #加載網頁

Data = driver.page_source #來獲取網頁的文本。

driver . Save _ screen down(' 1 . png ')#保存截圖。

打印(數據)

driver.quit()

硒+幻影的幾種用法

在請求頭中設置用戶代理

1

2

10

11

12

從selenium導入web驅動程序

從selenium . web driver . common . desired _ capabilities導入DesiredCapabilities

DCAP =字典(DesiredCapabilities。PhantomJS) # Set useragent

dcap[' phantom js . page . settings . user agent ']=(' Mozilla/5.0(Macintosh;英特爾Mac OS X 10.9;RV:25.0)Gecko/20100101 Firefox/25.0 ')#根據需要設置具體的瀏覽器信息。

driver = web driver . phantom js(desired _ capabilities = dcap)#封裝瀏覽器信息。

Driver.get('') #加載網頁

Data = driver.page_source #來獲取網頁的文本。

driver . Save _ screen down(' 1 . png ')#保存截圖。

打印(數據)

driver.quit()

請求超時設置

webdriver類中有三個與時間相關的方法:

1.pageLoadTimeout設置頁面完全加載時的超時時間。當頁面完全加載時,它被完全呈現,並且同步和異步腳本都被執行。

2.setScriptTimeout設置異步腳本的超時時間。

3.implicitlyWait標識對象的智能等待時間

1

2

從selenium導入web驅動程序

driver = webdriver。幻象()

driver . Set _ page _ load _ time out(5)#設置超時。

driver.get(' ')

打印(驅動程序.標題)

driver.quit()

設置瀏覽器窗口大小

調用啟動瀏覽器不是全屏的,有時候會影響我們的壹些操作,所以我們可以設置全屏。

1

2

Driver.maximize_window() #設置全屏。

司機。set _ window _ size ('480 ',' 800') #將瀏覽器設置為寬480,高800。

元素定位

1

2

10

11

12

13

14

15

16

17

18

從selenium導入web驅動程序

driver = webdriver。幻象()

driver.set_page_load_timeout(5)

driver.get(' ')

嘗試:

driver.get(' ')

司機。find _ element _ by _ ID ('kw') #按ID定位。

司機。find _ element _ by _ class _ name(' s _ ipt ')#由class屬性定位。

司機。find _ element _ by _ name ('wd') #由標記名屬性定位。

司機。find _ element _ by _ tag _ name(' input ')#由tag屬性定位。

司機。find _ element _ by _ css _ selector(' # kw ')#由CSS定位。

司機。find _ element _ by _ xpath("//input[@ id = ' kw ']")#通過XPath定位。

司機。find _ element _ by _ link _ text("貼吧")#通過xpath定位。

print(driver . find _ element _ by _ id(' kw ')。tag _ name) #獲取標簽的類型。

例外情況為e:

打印(e)

driver.quit()

向前或向後操作瀏覽器。

1

2

10

11

12

13

14

從selenium導入web驅動程序

driver = webdriver。幻象()

嘗試:

driver . get(')#訪問百度首頁

driver.save _截圖(' 1.png ')

driver . get(')#訪問新浪首頁。

driver.save_screenshot('2.png ')

Driver.back() #返回百度首頁。

driver.save _截圖(' 3.png ')

Driver.forward() #轉到新浪首頁。

driver.save _截圖(' 4.png ')

例外情況為e:

打印(e)

driver.quit()

  • 上一篇:網站SEO優化常用的HTML代碼有哪些?
  • 下一篇:什麽是C++的叠代器Interator?
  • copyright 2024編程學習大全網