**實現網頁的鍵盤輸入操作**
~~~
from selenium.webdriver.common.keys import Keys
動態網頁有時需要將鼠標懸停在某個元素上,相應的列表選項才能顯示出來。
而爬蟲在工作的時候也需要相應的操作,才能獲得列表項。
driver.find_element_by_class_name(...).send_keys(需要輸入的字串)
#find_element_by_class_name可以是find_element_by_link_text、find_element_by_id等其他方式
#send_keys一些特殊字符串,可以通過help(Keys)顯示出來,如實現按回車操作需要使用Keys.ENTER
~~~
**實現網頁上的鼠標的動作**
driver.find_element_by_link_text('更多').click()#需要指示到/a鏈接的位置
#同樣find_element_by_link_text可以是find_element_by_id等類似的其他方式
使用ActionChains可以實現鼠標的更多操作
~~~
from selenium.webdriver.common.action_chains import *
~~~
ActionChains中的操作:
click() -- 單擊、click_and_hold()-- 按下鼠標左鍵在一個元素上、context_click() --單擊、double_click()--雙擊、drag_and_drop()--拖動、key_down()、key_up()、move_by_offset()、move_to_elment()、move_to_elment_with_offset()
**動態網頁鼠標操作及遇到的問題**
動態網頁有時需要將鼠標懸停在某個元素上,相應的列表選項才能顯示出來。而爬蟲在工作的時候也需要相應的操作,才能獲得列表項。
~~~
#首先需要將鼠標停留到相應的元素
chain = ActionChains(driver)
moveelment = driver.find_element_by_xpath("...")
chain.move_to_element(moveelment).perform()
driver.find_element_by_xpath("//div[@class='search-condition c5 drop-down']/a/div").click()
#而后進行選擇列表項
driver.find_element_by_xpath("//ul[@id='category_list']/li[1]/a").click()
driver.find_element_by_xpath("//ul[@id='category_list']/li[2]/a").click()
~~~
而當想要進行多列操作時出現了問題:driver.find_element_by_xpath("//ul[@id='category_list']/li[2]/a").click()一直無法成功仔細debug發現:在人工瀏覽查看相應列表時,全屏情況下列表顯示是3列,而當需要聚焦特殊網頁時,通過解析current_url進行比較即可,是否存在更好的方法。如果窗口很小就只能顯示第一列的值。所以嘗試將爬蟲后臺瀏覽器窗口設置成最大化,程序正常工作,如下:
~~~
#... ...
driver.find_element_by_xpath("//ul[@id='category_list']/li[1]/a").click()
driver.maximize_window()
time.sleep(1)
driver.find_element_by_xpath("//ul[@id='category_list']/li[2]/a").click()
~~~
關于窗口的頁面切換方式
經常在網頁操作時,會彈出新的頁面,而爬蟲需要程序進行窗口間的切換。
~~~
#切換網頁,以獲取新彈出的網頁窗口
for handle in driver.window_handles:
driver.switch_to_window(handle)
print('current url:%s'%driver.current_url)
~~~
當需要聚焦特殊網頁時,通過解析current_url進行比較即可,是否存在更好的方法。
- 序言
- python 實現登錄網頁的操作方法
- Python爬蟲信息輸入及頁面的切換方法
- 利用Python如何實現數據驅動的接口自動化測試
- python 重定向獲取真實url的方法
- 解決Python網頁爬蟲之中文亂碼問題
- 利用Python yagmail三行代碼實現發送郵件
- Python實現查看系統啟動項功能示例
- Python利用splinter實現瀏覽器自動化操作方法
- 解決python3 json數據包含中文的讀寫問題
- python 識別圖片中的文字信息方法
- python實現對文件中圖片生成帶標簽的txt文件方法
- Python之批量創建文件的實例講解
- Python 使用PIL numpy 實現拼接圖片的示例
- 用python處理圖片之打開\顯示\保存圖像的方法
- 對python append 與淺拷貝的實例講解
- Python3讀取Excel數據存入MySQL的方法
- 詳解Django之admin組件的使用和源碼剖析
- admin組件使用
- admin源碼解析
- Python中pillow知識點學習
- Python裝飾器原理與用法分析
- Python實現的根據文件名查找數據文件功能示例
- Python開發的10個小貼士