• selenium设置Chrome代理、UA和Cookie


    一、selenium设置Chrome User-Agent+代理
    先上代码
    这里我直接用的UA轮子,随机取出一个来设置
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from fake_useragent import UserAgent
    headers = {'User-Agent': UserAgent().random} #从UA轮子里随机抽选一个用作配置,也可以自己手动设置
    print(headers) #自己手动设置,格式像这样(看输出)
    proxy = "127.0.0.1:8080" #这里是我自己本地开的一个代理服务用作测试
    ops = Options()
    ops.add_argument('User-Agent={}'.format(headers['User-Agent'])) #配置为自己设置的UA
    ops.add_argument('--proxy-server=http://%s' % proxy) #添加代理 格式为ip:port
    browser = webdriver.Chrome(options=ops)
    browser.get('http://192.168.31.130/dvwa/index.php')
    输出:
    {'User-Agent': 'Mozilla/5.0 (X11; NetBSD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36'}
    可在burpsuit上看到代理的流量说明代理成功,并且UA也已设置为自己配置的UA
    二、selenium设置Chrome Cookie
    登录后可看到Cookie长这样
    错误示例
    这估计很多人都踩了这个坑
    browser.delete_all_cookies()  # 删除原来的cookie
    browser.add_cookie({'think_lang': 'zh-cn', 'PHPSESSID': '6be4ba542aeecd9bef7967269add2835'})
    browser.get('http://192.168.31.130/dvwa/index.php')

    然后就会报这个错

    InvalidArgumentException: Message: invalid argument: missing 'name'

    正确示例

    我这样写是为了方便大家更清楚当Cookie有多个 name 和 value 时该如何设置

    cookie1 = {'name': 'security', 'value': 'impossible'}
    cookie2 = {'name': 'PHPSESSID', 'value': 'n5u6pc2lul897cdca7pek6s713'}
    browser.delete_all_cookies()  # 删除原来的cookie
    browser.add_cookie(cookie1)
    browser.add_cookie(cookie2)
    browser.get('http://192.168.31.130/dvwa/index.php')

    当然你也可以用一个for循环显得更专业(doge)

    cookie = {
        'security': 'impossible',
        'PHPSESSID': 'n5u6pc2lul897cdca7pek6s713'
    }
    browser.delete_all_cookies()  # 删除原来的cookie
    for name, value in cookie.items():
        browser.add_cookie({'name':name,'value':value})
    browser.get('http://192.168.31.130/dvwa/index.php')

    完整代码

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from fake_useragent import UserAgent
    headers = {'User-Agent': UserAgent().random} #从UA轮子里随机抽选一个用作配置,也可以自己手动设置
    print(headers) #自己手动设置,格式像这样(看输出)
    proxy = "127.0.0.1:8080" #这里是我自己本地开的一个代理服务用作测试
    ops = Options()
    ops.add_argument('User-Agent={}'.format(headers['User-Agent'])) #配置为自己设置的UA
    ops.add_argument('--proxy-server=http://%s' % proxy) #添加代理 格式为ip:port
    browser = webdriver.Chrome(options=ops)
    browser.get('http://192.168.31.130/dvwa/index.php')
    cookie = {
        'security': 'impossible',
        'PHPSESSID': 'n5u6pc2lul897cdca7pek6s713'
    }
    browser.delete_all_cookies()  # 删除原来的cookie
    for name, value in cookie.items():
        browser.add_cookie({'name':name,'value':value})
    browser.get('http://192.168.31.130/dvwa/index.php')

    这里运行完如果想退出selenium驱动的浏览器记得用browser.quit(),手动叉掉的话进程可能没关掉

    browser.quit()

    代码功能:代理并设置自定义UA然后用Cookie自动登录成功

  • 相关阅读:
    BZOJ 1051: [HAOI2006]受欢迎的牛( tarjan )
    BZOJ 2208: [Jsoi2010]连通数( DFS )
    js效果-鼠标提示框
    CSS-背景
    CSS-文本
    tomcat 安装 for Mac
    CSS选择器基础
    POJ3349-Snowflake Snow Snowflakes-Hash
    数据库的三大设计范式
    HDU5120-Intersection-两个圆环相交面积
  • 原文地址:https://www.cnblogs.com/zrzm/p/16314373.html
Copyright © 2020-2023  润新知