天天看點

爬蟲學習(17):selenium學習

川川已經很久沒發文章了,為了鍛煉出八塊腹肌也是忍了,不說廢話了,學了下selenium,我再釋出總結下,還有如何用selenium制作一個自動填體溫,emm…沒辦法,我學校天天都叫我們填體溫,上午一次下午一次,煩死了。自動填體溫代碼由于透露到個人資訊,我實在不友善透露了,大家可以群裡找我,再教你也可以,或者看我下面幾個教程,自己摸索下就做出來了,我也才學了一小部分,學完再發後面的

提供一個這個子產品學習的好網址,大家可以參考學習,我才看了不到半就搞了個自動填體溫,太簡單了:

http://class.itest.info/selenium_python      

順便說一下我的扣扣群,我自己的代碼,很多都放到扣扣群,有問題也可以群裡找我,免費免費,都是學生,大家互助,評論的話我很少看,基本回不了大家問題:

QQ群:   970353786      

代碼我就不示範了哈,自己運作試試就知道了

(一):元素定位

from selenium import webdriver#導入子產品
browser=webdriver.Chrome()#初始化
browser.get('https://www.taobao.com')#get請求淘寶網頁
#print(browser.page_source)#列印網頁源碼
href=browser.find_element_by_link_text('男裝')#文本擷取連結
# print(href)
lei=browser.find_element_by_class_name('service-bd')#class name定位
# print(lei)
id=browser.find_element_by_id('tb-beacon-aplus')#id定位
# print(id)
name=browser.find_elements_by_name('goods')#name定位
# print(name)
print("設定浏覽器寬480、高800顯示")
browser.set_window_size(480, 800)
browser.quit()#關閉浏覽器
#類似還有:tag name,partial link text,xpath,css selector
# browser.close()#關閉浏覽器


# from selenium import webdriver
#
# from time import sleep
# #1.建立Chrome浏覽器對象,這會在電腦上在打開一個浏覽器視窗
# browser = webdriver.Chrome('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\chromedriver')
#
# #2.通過浏覽器向伺服器發送URL請求
# browser.get("https://www.baidu.com/")
#
# sleep(3)
#
# #3.重新整理浏覽器
# browser.refresh()
#
# #4.設定浏覽器的大小
# browser.set_window_size(1400,800)
#
# #5.設定連結内容
# element=browser.find_element_by_link_text("新聞")
# element.click()
#
# element=browser.find_element_by_link_text("“下團組”時間")
# element.click()      

(二)控制網頁前後

from selenium import webdriver

driver = webdriver.Chrome(executable_path='C:\ProgramData\Microsoft\Windows\Start Menu\Programs\chromedriver')

#通路百度首頁
first_url= 'http://www.baidu.com'
print("now access %s" %(first_url))
driver.get(first_url)#擷取目前百度網頁

#通路新聞頁面
second_url='https://www.taobao.com'
print("now access %s" %(second_url))
driver.get(second_url)#擷取目前新聞網頁

#傳回(後退)到百度首頁
print("back to  %s "%(first_url))
driver.back()

#前進到新聞頁
print("forward to  %s"%(second_url))
driver.forward()

driver.refresh() #重新整理目前頁面

driver.quit()#退出      

(三)自動輸入,傳回的控制

# from selenium import webdriver
#
# driver = webdriver.Chrome()
# driver.get("https://www.baidu.com")
#
# driver.find_element_by_id("kw").clear()#清楚輸入框原來的内容
# driver.find_element_by_id("kw").send_keys("selenium")#找到輸入框,輸入selenium
# driver.find_element_by_id("su").click()#找到‘百度一下’,點選進行搜尋
#
# driver.quit()


# from selenium import webdriver
# from time import sleep
# driver = webdriver.Chrome()
# driver.get("https://www.baidu.com")
#
# search_text = driver.find_element_by_id('kw')#找到輸入框
# search_text.send_keys('selenium')#輸入内容
# search_text.submit()#submit相當于回車,跟click差不多
# sleep(5)#5秒後關閉
# driver.quit()


# from selenium import webdriver
#
# driver = webdriver.Chrome()
# driver.get("http://www.baidu.com")
#
# # 獲得輸入框的尺寸
# size = driver.find_element_by_id('kw').size
# print(size)
#
# # 傳回百度頁面底部備案資訊
# text = driver.find_element_by_class_name('s-bottom-layer-content').text#備案資訊為文本
# print(text)
#
# # 傳回元素的屬性值, 可以是 id、 name、 type 或其他任意屬性
# attribute = driver.find_element_by_id("kw").get_attribute('type')
# print(attribute)
# #
# # # 傳回元素的結果是否可見, 傳回結果為 True 或 False
# result = driver.find_element_by_id("kw").is_displayed()
# print(result)
#
# driver.quit()      
from selenium import webdriver
#1.引入 ActionChains 類
from selenium.webdriver.common.action_chains import ActionChains

#1.建立Chrome浏覽器對象,這會在電腦上在打開一個浏覽器視窗
driver = webdriver.Chrome(executable_path ="C:\ProgramData\Microsoft\Windows\Start Menu\Programs\chromedriver")

driver.get("https://www.baidu.com")
driver.maximize_window()
#2.定位到要懸停的元素
element= driver.find_element_by_id('s-usersetting-top')

#3.對定位到的元素執行滑鼠懸停操作
# ActionChains(driver).move_to_element(element).perform()
element.click()
#找到連結
elem1=driver.find_element_by_link_text("搜尋設定")
elem1.click()

#通過元素選擇器找到id=sh_2,并點選設定
elem2=driver.find_element_by_id("sh_1")
elem2.click()

#儲存設定
elem3=driver.find_element_by_class_name("prefpanelgo")
elem3.click()

# perform(): 執行所有 ActionChains 中存儲的行為;
#
# context_click(): 右擊;
#
# double_click(): 輕按兩下;
#
# drag_and_drop(): 拖動;
#
# move_to_element(): 滑鼠懸停。