zoukankan      html  css  js  c++  java
  • 绕过验证码登陆的方法(适合只需登陆一次可以记住登陆台的网站)

    selenium获取cookies

    1.大前提:先手工操作浏览器,登录我的博客,并记住密码
    (保证关掉浏览器后,下次打开浏览器访问我的博客时候是登录状态)
    2.selenium默认启动浏览器是一个空的配置,默认不加载配置缓存文件,这里先得找到对应浏览器的配置文件地址,以火狐浏览器为例
    3.使用driver.get_cookies()方法获取浏览器的cookies

    # coding:utf-8
    import requests
    from selenium import webdriver
    from bs4 import BeautifulSoup
    import re
    import time
    # firefox浏览器配置文件地址
    profile_directory = r'C:UsersadminAppDataRoamingMozillaFirefoxProfilesyn80ouvt.default'
    # 加载配置
    profile = webdriver.FirefoxProfile(profile_directory)
    # 启动浏览器配置
    driver = webdriver.Firefox(profile)
    
    driver.get("https://home.cnblogs.com/u/yoyoketang/followers/")
    
    time.sleep(3)
    cookies = driver.get_cookies()  # 获取浏览器cookies
    print(cookies)
    driver.quit()

    (注:要是这里脚本启动浏览器后,打开的博客页面是未登录的,后面内容都不用看了,先检查配置文件是不是写错了)

    requests添加登录的cookies

    1.浏览器的cookies获取到后,接下来用requests去建一个session,在session里添加登录成功后的cookies

    s = requests.session()  # 新建session
    
    # 添加cookies到CookieJar
    c = requests.cookies.RequestsCookieJar()
    for i in cookies:
        c.set(i["name"], i['value'])
    
    s.cookies.update(c)  # 更新session里cookies

    计算粉丝数和分页总数

    1.由于我的粉丝的数据是分页展示的,这里一次只能请求到45个,所以先获取粉丝总数,然后计算出总的页数

    # 发请求
    r1 = s.get("https://home.cnblogs.com/u/yoyoketang/relation/followers")

    参考: https://www.cnblogs.com/yoyoketang/p/8610779.html
  • 相关阅读:
    DNS服务器安全之通过ipset对DNS异常解析流量的源IP地址进行管控
    C# Windows Api的一些方法 封装 以及 常用参数
    Java基础—异常(1)
    Java基础——异常(2)
    vb6 wininet
    vb6转16进制
    Java 中与(&)短路与(&&)以及 或(|)短路或(||)的关系
    关于面向对象的简单总结
    javaScript的基本规范
    关于TCP传输的三次握手四次挥手策略
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/11285628.html
Copyright © 2011-2022 走看看