Python爬蟲信息輸入及頁面的切換方法
實(shí)現(xiàn)網(wǎng)頁的鍵盤輸入操作
from selenium.webdriver.common.keys import Keys 動(dòng)態(tài)網(wǎng)頁有時(shí)需要將鼠標(biāo)懸停在某個(gè)元素上,相應(yīng)的列表選項(xiàng)才能顯示出來。 而爬蟲在工作的時(shí)候也需要相應(yīng)的操作,才能獲得列表項(xiàng)。 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)顯示出來,如實(shí)現(xiàn)按回車操作需要使用Keys.ENTER
實(shí)現(xiàn)網(wǎng)頁上的鼠標(biāo)的動(dòng)作
driver.find_element_by_link_text('更多').click()#需要指示到/a鏈接的位置
#同樣find_element_by_link_text可以是find_element_by_id等類似的其他方式
使用ActionChains可以實(shí)現(xiàn)鼠標(biāo)的更多操作
from selenium.webdriver.common.action_chains import *
ActionChains中的操作:
click() -- 單擊、click_and_hold()-- 按下鼠標(biāo)左鍵在一個(gè)元素上、context_click() --單擊、double_click()--雙擊、drag_and_drop()--拖動(dòng)、key_down()、key_up()、move_by_offset()、move_to_elment()、move_to_elment_with_offset()
動(dòng)態(tài)網(wǎng)頁鼠標(biāo)操作及遇到的問題
動(dòng)態(tài)網(wǎng)頁有時(shí)需要將鼠標(biāo)懸停在某個(gè)元素上,相應(yīng)的列表選項(xiàng)才能顯示出來。而爬蟲在工作的時(shí)候也需要相應(yīng)的操作,才能獲得列表項(xiàng)。
#首先需要將鼠標(biāo)停留到相應(yīng)的元素
chain = ActionChains(driver)
moveelment = driver.find_element_by_xpath("...")
chain.move_to_element(moveelment).perform()
driver.find_element_by_xpath("http://div[@class='search-condition c5 drop-down']/a/div").click()
#而后進(jìn)行選擇列表項(xiàng)
driver.find_element_by_xpath("http://ul[@id='category_list']/li[1]/a").click()
driver.find_element_by_xpath("http://ul[@id='category_list']/li[2]/a").click()
而當(dāng)想要進(jìn)行多列操作時(shí)出現(xiàn)了問題:driver.find_element_by_xpath("http://ul[@id='category_list']/li[2]/a").click()一直無法成功仔細(xì)debug發(fā)現(xiàn):在人工瀏覽查看相應(yīng)列表時(shí),全屏情況下列表顯示是3列,而當(dāng)需要聚焦特殊網(wǎng)頁時(shí),通過解析current_url進(jìn)行比較即可,是否存在更好的方法。如果窗口很小就只能顯示第一列的值。所以嘗試將爬蟲后臺(tái)瀏覽器窗口設(shè)置成最大化,程序正常工作,如下:
#... ...
driver.find_element_by_xpath("http://ul[@id='category_list']/li[1]/a").click()
driver.maximize_window()
time.sleep(1)
driver.find_element_by_xpath("http://ul[@id='category_list']/li[2]/a").click()
關(guān)于窗口的頁面切換方式
經(jīng)常在網(wǎng)頁操作時(shí),會(huì)彈出新的頁面,而爬蟲需要程序進(jìn)行窗口間的切換。
#切換網(wǎng)頁,以獲取新彈出的網(wǎng)頁窗口
for handle in driver.window_handles:
driver.switch_to_window(handle)
print('current url:%s'%driver.current_url)
當(dāng)需要聚焦特殊網(wǎng)頁時(shí),通過解析current_url進(jìn)行比較即可,是否存在更好的方法。
以上這篇Python爬蟲信息輸入及頁面的切換方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 一個(gè)簡單的python爬蟲程序 爬取豆瓣熱度Top100以內(nèi)的電影信息
- python爬蟲爬取淘寶商品信息(selenum+phontomjs)
- python爬蟲爬取淘寶商品信息
- Python實(shí)現(xiàn)可獲取網(wǎng)易頁面所有文本信息的網(wǎng)易網(wǎng)絡(luò)爬蟲功能示例
- 使用python爬蟲實(shí)現(xiàn)網(wǎng)絡(luò)股票信息爬取的demo
- python爬蟲_微信公眾號(hào)推送信息爬取的實(shí)例
- Python網(wǎng)絡(luò)爬蟲與信息提取(實(shí)例講解)
- Python爬蟲實(shí)現(xiàn)網(wǎng)頁信息抓取功能示例【URL與正則模塊】
- Python爬蟲框架Scrapy實(shí)戰(zhàn)之批量抓取招聘信息
- python爬蟲租房信息在地圖上顯示的方法
相關(guān)文章
對python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié)
今天小編就為大家分享一篇對python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
實(shí)現(xiàn)ECharts雙Y軸左右刻度線一致的例子
這篇文章主要介紹了實(shí)現(xiàn)ECharts雙Y軸左右刻度線一致的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
使用Python實(shí)現(xiàn)全攝像頭拍照與鍵盤輸入監(jiān)聽功能
這篇文章主要介紹了使用Python實(shí)現(xiàn)全攝像頭拍照與鍵盤輸入監(jiān)聽功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
python二維鍵值數(shù)組生成轉(zhuǎn)json的例子
今天小編就為大家分享一篇python二維鍵值數(shù)組生成轉(zhuǎn)json的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
解決python3 json數(shù)據(jù)包含中文的讀寫問題
今天小編就為大家分享一篇解決python3 json數(shù)據(jù)包含中文的讀寫問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05

