栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python+selenium学习(一)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python+selenium学习(一)

安装selenium

pip install selenium

安装chromedriver

浏览器中输入chrome://version/查看当前版本
从http://chromedriver.storage.googleapis.com/index.html下载对应版本驱动

配置chromedriver

解压下载包得到chromedriver.exe,复制到任意文件夹中

将当前路径复制添加到系统环境变量中即可。

测试
from selenium import webdriver
import time

def main():
    browser = webdriver.Chrome()
    browser.get('https://www.amazon.com')
    time.sleep(10)
    browser.quit()
if __name__ == '__main__':
    main()

或者在cmd中输入chromedriver

add_argument参数设置
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium import webdriver

def getBrowser(port):
    chrome_driver_path = 'E:/chromedriver/chromedriver.exe'
    opt = Options()
    # 把chrome设置成无界面化
    opt.headless = True
    # 让chrome在root权限下运行,解决DevToolsActivePort文件不存在的报错
    opt.add_argument('--no-sandbox')
    # 禁用浏览器正在被自动化程序控制的提示
    opt.add_argument('--disable-infobars')
    # 设置浏览器分辨率
    opt.add_argument('window-size=1920x3000')
    # 谷歌文档提到需要加上这个属性来规避bug
    opt.add_argument('--disable-gpu')
    # 隐藏滚动条,应对一些特殊页面
    opt.add_argument('--hide-scrollbars')
    # 不加载图片,提升运行速度
    opt.add_argument('blink-settings=imagesEnabled=false')
    # 加载历史的用户数据
    opt.add_argument('user-data-dir=E:/selenium/AutomationProfile')
    # 连接调试的debug
    opt.add_experimental_option("debuggerAddress", "127.0.0.1:%d" % port)
    #driver.get改成不阻塞,直接返回,不用等待界面加载完成
    desired_capabilities = DesiredCapabilities.CHROME
    desired_capabilities["pageLoadStrategy"] = "none"

    browser = webdriver.Chrome(options=opt, executable_path=chrome_driver_path)
    return browser
运行cmd命令行
import os

CHROME_PATH='E:/chromedriver'
PROJECT_PATH='G:/pythonProject'

def run_win_cmd(PORT):
    result = []
    os.chdir(CHROME_PATH)
    print(os.getcwd())
    cmd='chrome.exe ' 
     '--remote-debugging-port=%d ' 
     '--user-data-dir="G:/crawl/%d/AutomationProfile"'%(PORT,PORT)
    print(cmd)

    os.popen(cmd)
    os.chdir(PROJECT_PATH)
    print(os.getcwd())
获取网页源码
def getPageSource(browser,url):
    try:
        browser.get(url)
        pagesource=browser.page_source
        # print(pagesource)
        if len(pagesource)>0:
            return pagesource
    except:
        return None
PORT = 9530
def main():
    url = 'https://www.amazon.com'
    run_win_cmd(PORT)   #运行cmd命令行
    browser = getBrowser(PORT)  #创建浏览器对象
    browser.set_window_size(1920, 1080)
    browser.minimize_window()   #浏览器最小化
    source = getPageSource(browser, url)    #获取页面源码
    print(source)
    with open("home.html", "w", encoding="utf-8") as f:
        f.write(source)
    browser.close() #关闭浏览器
if __name__ == '__main__':
    main()

环境搭建参考:
https://www.cnblogs.com/lfri/p/10542797.html
参数设置参考:
https://www.cnblogs.com/pywjh/p/9785650.html
https://www.cnblogs.com/darkspr/p/11533119.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/321331.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号