pip install selenium注意:如果chrome在自動更新的話,可能會導致執行出現問題,我們應該去系統服務中禁用chrome的自動更新服務。
其中提供了phantomjs,chromedriver,operadriver等映象位址。】
可以按照以下方式檢視版本是否能對應:
以上是我的路徑。
將chrome根目錄加到系統環境變數中:
即保證selenium能夠執行chromedriver.exe程式即可(所在目錄新增在系統變數)。
importtime
from selenium import
webdriver
#建立乙個chrome瀏覽器例項
driver =webdriver.chrome()
#driver.get("
")#睡眠5s觀察效果
time.sleep(5)
#退出瀏覽器
driver.quit()
import使用以下方式獲取所有的cookie:time
from selenium import
webdriver
#建立乙個chrome瀏覽器例項
driver =webdriver.chrome()
#設定視窗大小為1920x1080
#driver.set_window_size(1920,1080)
#設定視窗為全屏
driver.maximize_window()
#driver.get("
")#driver.find_element_by_id("
kw").send_keys('
python')
#driver.find_element_by_id("su"
).click()
#睡眠5s觀察效果
time.sleep(5)
#退出瀏覽器
driver.quit()
importtime
from selenium import
webdriver
driver =webdriver.chrome()
driver.get(
"")#獲取所有的cookie資訊
cookies =driver.get_cookies()
#只保留cookie的名稱和值
cookies =
( cookies)
#time.sleep(3)
driver.quit()
#退出瀏覽器。另外driver.close()是關閉頁面,當關閉了最後乙個頁面,則退出瀏覽器。
driver.page_source #對應f12中elements的內容
driver.current_url #對應當前訪問的url,即當前**所在位置對應瀏覽器所在url
li_list = driver.find_elements_by_xpath("注意,find_elements_by_xpath是獲取多個標籤的列表,而find_element_by_xpath是獲取乙個標籤(第乙個)。並且使用find_element_**方法,只能獲取標籤元素,而不能用於獲取文字,例如 "//ul[@id='detail-list']/li
") #
獲取多個li標籤
for li in
li_list:
li.find_element_by_xpath(
".//h1/p
") #
繼續使用xpath獲取其中的乙個標籤
.//h1/p/text()
" 就不是乙個標籤,會報錯: "
.//h1/p/text()
"is: [object text]. it shoud be an element.
如果要獲取標籤的屬性值:
li.find_element_by_xpath(".//h1/p
").text
li.find_element_by_xpath(
".//h1/a
").get_attribute("
href
")
driver.find_element_by_link_text("偏文字匹配(即區域性包含文字):").get_attribute("
href
")
driver.find_element_by_partial_link_text("除了以上查詢元素的方式,selenium還支援其他的方式,例如:下一").get_attribute("
href
")
driver.find_elements_by_tag_name()我們知道,iframe標籤是可以嵌入在html頁面中的另乙個頁面,所以我們直接使用driver是無法拿到iframe中的元素的。需要進行一下操作:driver.find_elements_by_class_name()
driver.find_elements_by_css_selector()
import可以看到,我們以qq郵箱登陸頁面為例,將driver切換到iframe,然後找到輸入框輸入資料。time
from selenium import
webdriver
driver =webdriver.chrome()
driver.get(
"")#對應登入框的標籤為iframe id=login_frame
driver.switch_to.frame("
login_frame")
#找到iframe中的username的輸入框
username = driver.find_element_by_xpath("
//input[@id='u']")
#輸入資料
username.send_keys("
4774177")
time.sleep(3)
driver.quit()
driver.switch_to.default_content()在selenium中,只有請求第乙個頁面的時候,會自動等待頁面載入完畢後再獲取標籤物件。
這時我們需要設定乙個等待時間,有三種方式:
import設定乙個最長等待時間,如果在時間內未找到元素,則丟擲異常:time
time.sleep(3) #
強制等待3秒
webdriverwait(driver,10).until(ec.presence_of_element_located((by.id,"簡單的設定乙個最大等待時間,單位是秒kw"),message="")
driver.implicitly_wait(10) #關於以上三種等待方式的優缺點,參考:隱式等待10秒
Python自學爬蟲
解除安裝前面 這是乙個半自動爬蟲,也就是手動的比較多 也是個人學習效果展示 如果對看到的人有幫助 那再好不過了 匯入正規表示式模組和csv模組 import re import csv 讀取檔案 with open source.txt r encoding gbk as f all str f.r...
杭州自學python爬蟲 自學PYTHON爬蟲
response urllib2.urlopen urlopen url,data,timeout 第乙個引數url即為url,第二個引數data是訪問url時要傳送的資料,第三個timeout是設定超時時間。第二三個引數是可以不傳送的,data預設為空none,timeout預設為 socket....
python免費自學爬蟲 python爬蟲學習
近日,學習爬蟲基礎,自己寫了乙個小指令碼。目標 每天晚上定時傳送第二天的工作專案到qq郵箱。目的 頭天晚上得到第二天的工作計畫,好決定頭天晚上是否能喝酒過量 是否能麻將通宵等等等等。哈哈!思路 1 從停電申請系統,統計出第二日的工作專案。2 每天晚上定時傳送該專案到qq郵箱。要解決的主要問題 1 從...