在使用selenium 之前先要下載瀏覽器驅動
下載 chrome 驅動
python 解壓縮 zip
def un_zip(file_name, to_dir='./'):
"""unzip zip file"""
zip_file = zipfile.ZipFile(file_name)
if os.path.isdir(to_dir):
pass
else:
os.mkdir(to_dir)
for names in zip_file.namelist():
zip_file.extract(names, to_dir)
zip_file.close()
requests 下載網絡文件
def download_driver(to_dir='./'):
print('install chrome-driver first')
url = 'http://npm.taobao.org/mirrors/chromedriver/LATEST_RELEASE'
version = requests.get(url).content.decode('utf8')
driver_file = 'http://npm.taobao.org/mirrors/chromedriver/' + version + '/chromedriver_win32.zip'
r = requests.get(driver_file)
download_zip = "chromedriver_win32.zip"
with open(download_zip, "wb") as code:
code.write(r.content)
un_zip(download_zip, to_dir)
os.remove(download_zip)
使用 selenium 訪問百度圖片
自動打開瀏覽器,模擬手工搜索行爲,間歇性滾動鼠標
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import time
import requests
import zipfile
import os
#初始化一個瀏覽器(如:谷歌,使用Chrome需安裝chromedriver)
try:
driver = webdriver.Chrome()
except Exception as e:
download_driver(to_dir='./')
driver = webdriver.Chrome()
try:
#請求網頁
driver.get("http://image.baidu.com/")
#查找id值爲kw的節點對象(搜索輸入框)
input = driver.find_element_by_id("kw")
#模擬鍵盤輸入字串內容
input.send_keys("街拍")
#模擬鍵盤點擊回車鍵
input.send_keys(Keys.ENTER)
#顯式等待,最長10秒
wait = WebDriverWait(driver,10)
#等待條件:10秒內必須有個id屬性值爲imgContainer的節點加載出來,否則拋異常。
wait.until(EC.presence_of_element_located((By.ID,'imgContainer')))
# 輸出響應信息
#print(driver.current_url) #請求url地址
#print(driver.get_cookies())
#print(driver.page_source) #獲取網頁內容
#
#將頁面滾動條拖到底部
js="var q=document.documentElement.scrollTop=100000"
while(True):
driver.execute_script(js)
time.sleep(4)
except Exception as err:
print(err)
finally:
#關閉瀏覽器
driver.close()
pass