• python实现网页截图


    这是windows下面的截图方法,实现方法都用了selenium

    依赖库如下所示:

    pip install selenium==2.48.0

    方法一:

    代码如下所示:

    import time
    from selenium import webdriver
    
    
    def jieTu(reqUrl):
        br = webdriver.PhantomJS(executable_path=r'D:phantomjs-2.1.1-windowsinphantomjs')
        br.maximize_window()
        br.get(reqUrl)
        time.sleep(5)
        picName = reqUrl[reqUrl.rfind('/'):][1:].replace(".html", "")
        br.save_screenshot("./savehtml/picture/{}.png".format(picName))
        return str(picName)+'.png'
    
    
    if __name__ == '__main__':
        url = "https://www.baidu.com"
        # pic_name = url[url.rfind('/'):][1:].replace(".html", ".png")
        # print(pic_name)
        jieTu(url)

    注意:在这里,如果没有phantomjs.exe文件将会报错

    phantomjs下载地址(根据自己电脑的系统下):

    https://phantomjs.org/download.html

    方法二:

    代码如下所示:

    import time
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    URL = 'https://www.baidu.com/'
    # 用selenium打开网页
    # (首先要下载 Chrome webdriver, 或 Chrome webdriver)
    ch_options = Options()
    ch_options.add_argument("--disable-blink-features=AutomationControlled")
    # 在启动浏览器时加入配置
    driver = webdriver.Chrome(executable_path=r"D:chromedriver.exe", chrome_options=ch_options)
    driver.get(URL)
    print(driver.page_source)
    time.sleep(5)
    driver.save_screenshot("./timeline.png")

    注意:在这里需要下载的是chromedriver(版本需要与自己的google浏览器版本对应,系统与电脑的系统相匹配)

    驱动下载地址:

    https://npm.taobao.org/mirrors/chromedriver/

     方法三:

    此方法能够实现截图,但是达不到预想的效果,也有可能是自己写的不完善,在这里粘贴代码,是为了能够记录实现这种功能,自己所做的测试案例

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    import time
    chrome_options = Options()
    driver = webdriver.Chrome(executable_path="D:chromedriver.exe", chrome_options=ch_options)  # => 注意这里的参数
    driver.maximize_window()  # 设置phantomjs浏览器全屏显示
    start_url = "https://www.baidu.com/"
    driver.get(start_url)
    time.sleep(1)
    # 获取区域块
    # imgelement = driver.find_element_by_xpath('//ul[@class="horizontal-list"][1]')
    imgelement = driver.find_element_by_xpath('//html[@class="js"][1]')
    print("********************************************")
    print(imgelement)
    
    # 图片坐标
    locations = imgelement.location
    print(locations)
    # 图片大小
    sizes = imgelement.size
    print(sizes)
    # 构造指数的位置
    # rangle = (
    # int(locations['x']), int(locations['y']), int(locations['x'] + sizes['width']), int(locations['y'] + sizes['height']))
    rangle = (
        int(500 + locations['x']), 3500 + int(locations['y']), 500 + int(locations['x'] + sizes['width']),
        3500 + int(locations['y'] + sizes['height']))
    print(rangle)
    save_path = "D:\programming\Replay\screenshot\test2.png"
    driver.save_screenshot(save_path)
    driver.close()

     注意:此方法的实现,也利用了chormedirver,下载地址如下:

    https://npm.taobao.org/mirrors/chromedriver/
  • 相关阅读:
    转载-WebSocket协议解析
    django sqlite3数据迁入postgresql
    使用JenKins实现自动执行python脚本
    调用函数的局部变量
    打开新窗口获取元素
    邮箱登录脚本
    购物车小程序
    循环
    格式化的输出
    使用#号输出图形,可以指定宽和高
  • 原文地址:https://www.cnblogs.com/lxz123/p/15503774.html
Copyright © 2020-2023  润新知