vsyour 发表于 2019-4-17 21:34

记录自用python selenium 取cookie免登陆小技巧

本帖最后由 vsyour 于 2019-7-19 11:33 编辑

有了cookie网站就不需要登陆了。
对于那些有验证码的网站利用cookie登陆还是一个比较省时省力的办法。

代码如下:
# coding:utf-8
from fake_useragent import UserAgent
from selenium import webdriver
from bs4 import BeautifulSoup
import time
import datetime

ua = UserAgent()


def kanxue_Chrome():
    loginUrl = r'https://passport.kanxue.com/user-login.htm'
    # 进入浏览器设置
    options = webdriver.ChromeOptions()
    # 设置中文
    options.add_argument('lang=zh_CN.UTF-8')
    # 更换头部
    useragent = ua['google chrome']
    options.add_argument('"%s"' % useragent)
    browser = webdriver.Chrome(chrome_options=options,executable_path=r'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe')
    browser.get(loginUrl)
    time.sleep(50)# 程序走到这里时暂停,登陆网页后得到cookie

    print('cookie:-->start'.center(130, '*'))
    for cookie in browser.get_cookies():
      #print("%s -> %s" % (cookie['name'], cookie['value']))
      tip='''browser.add_cookie({'name': '%s', 'value': '%s'})'''% (cookie['name'],cookie['value'])
      print(tip)
    print('cookie:-->End'.center(130, '*'))
    # 将生成的cookies 直接加入就行了


if __name__ == '__main__':
    kanxue_Chrome()





20190719 更新
# coding:utf-8

'''
获取网站cookie信息
'''
from selenium import webdriver
import time


# from fake_useragent import UserAgent
# ua = UserAgent()

class GetCookie:
    def __init__(self):
      pass

    def chrome(self, url):
      # 进入浏览器设置
      # options = webdriver.ChromeOptions()
      # 设置中文
      # options.add_argument('lang=zh_CN.UTF-8')
      # options.add_argument('lang=en_US.UTF-8')
      # 更换头部
      # useragent = ua['google chrome']
      # options.add_argument('"%s"' % useragent)
      # browser = webdriver.Chrome(chrome_options=options,executable_path=r'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe')
      browser = webdriver.Chrome(
            executable_path=r'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe')
      browser.get(url)
      time.sleep(20)# 程序走到这里时暂停,登陆网页后得到cookie
      print('cookie:-->start'.center(130, '*'))
      for cookie in browser.get_cookies():
            # print("%s -> %s" % (cookie['name'], cookie['value']))
            tip = '''browser.add_cookie({'name': '%s', 'value': '%s'})''' % (cookie['name'], cookie['value'])
            print(tip)
      print('cookie:-->End'.center(130, '*'))
      # 将生成的cookies 直接加入就行了

    def firefox(self, url):
      browser = webdriver.Firefox(executable_path=r'C:\Anaconda3\geckodriver.exe')
      browser.get(url)
      time.sleep(20)# 程序走到这里时暂停,登陆网页后得到cookie
      print('cookie:-->start'.center(130, '*'))
      for cookie in browser.get_cookies():
            # print("%s -> %s" % (cookie['name'], cookie['value']))
            tip = '''browser.add_cookie({'name': '%s', 'value': '%s'})''' % (cookie['name'], cookie['value'])
            print(tip)
      print('cookie:-->End'.center(130, '*'))


if __name__ == '__main__':
    # 实例化
    getCookie = GetCookie()
    # 用chrome获取cookie
    #getCookie.chrome('https://www.taobao.com')
    # 用 firefox 获取cookie
    getCookie.firefox('https://www.taobao.com')

vsyour 发表于 2019-5-2 11:03

zyjia 发表于 2019-5-1 11:38
如何加已有的cookie,给一个完整的代码,可以吗?最好是吾爱破解的,谢谢。

# coding:utf-8
from fake_useragent import UserAgent
from selenium import webdriver
from bs4 import BeautifulSoup
import time
import datetime
ua = UserAgent()

def kanxue_Chrome():
    loginUrl = r'https://www.52pojie.cn/'
    # 进入浏览器设置
    options = webdriver.ChromeOptions()
    # 设置中文
    options.add_argument('lang=zh_CN.UTF-8')
    # 更换头部
    useragent = ua['google chrome']
    options.add_argument('"%s"' % useragent)
    #browser = webdriver.Chrome(chrome_options=options,executable_path=r'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe')
    browser = webdriver.Chrome(chrome_options=options)
    browser.get(loginUrl)
    time.sleep(50)# 程序走到这里时暂停,登陆网页后得到cookie

    # print('cookie:-->start'.center(130, '*'))
    # for cookie in browser.get_cookies():
    #   #print("%s -> %s" % (cookie['name'], cookie['value']))
    #   tip='''browser.add_cookie({'name': '%s', 'value': '%s'})'''% (cookie['name'],cookie['value'])
    #   print(tip)
    # print('cookie:-->End'.center(130, '*'))
    # 将生成的cookies 直接加入就行了
    browser.add_cookie({'name': 'htVD_2132_noticeTitle', 'value': '1'})
    browser.add_cookie({'name': 'htVD_2132_checkpm', 'value': '1'})
    browser.add_cookie({'name': 'htVD_2132_lastact', 'value': '改成你自己的'})
    browser.add_cookie({'name': 'htVD_2132_onlineusernum', 'value': '改成你自己的'})
    browser.add_cookie({'name': 'htVD_2132_nofavfid', 'value': '1'})
    browser.add_cookie({'name': 'htVD_2132_lastvisit', 'value': '改成你自己的'})
    browser.add_cookie({'name': 'htVD_2132_ttask', 'value': '改成你自己的'})
    browser.add_cookie({'name': 'htVD_2132_connect_is_bind', 'value': '1'})
    browser.add_cookie({'name': 'htVD_2132_lip', 'value': '改成你自己的'})
    browser.add_cookie({'name': 'htVD_2132_auth',
                        'value': '改成你自己的'})
    browser.add_cookie({'name': 'htVD_2132_pc_size_c', 'value': '0'})
    browser.add_cookie({'name': 'htVD_2132_lastcheckfeed', 'value': '改成你自己的'})
    browser.add_cookie({'name': 'htVD_2132_saltkey', 'value': '改成你自己的'})
    browser.add_cookie({'name': 'Hm_lpvt_46d556462595ed05e05f009cdafff31a', 'value': '改成你自己的'})
    browser.add_cookie({'name': 'htVD_2132_ulastactivity', 'value': '改成你自己的'})
    browser.add_cookie({'name': 'Hm_lvt_46d556462595ed05e05f009cdafff31a', 'value': '改成你自己的'})
    browser.add_cookie({'name': '_uab_collina', 'value': '改成你自己的'})

if __name__ == '__main__':
    kanxue_Chrome()

vsyour 发表于 2019-4-17 22:15

sitiger 发表于 2019-4-17 22:06
貌似不全啊

登陆账号后就会生成出加cookie的代码,然后把生成出来的代码放到你的脚本中,这样等待的那部份就能注释掉了。

就不需要去一个个复制那么麻烦了。。

哈哈这个感觉不太好表达,不知道你明白我的意思没。。。你试试看吧。

yitoumao 发表于 2019-4-17 21:57

顶一个,需要这样的分享

龙龙龙龙龙龙 发表于 2019-4-17 22:02

谢谢分享

ellada 发表于 2019-4-17 22:03

selenium最大的问题是浏览器要和引擎版本匹配,否则起不来。

sitiger 发表于 2019-4-17 22:06

貌似不全啊

vsyour 发表于 2019-4-17 22:12

ellada 发表于 2019-4-17 22:03
selenium最大的问题是浏览器要和引擎版本匹配,否则起不来。

是的,这是经常会碰到的问题.
我一般是会到这里找对应的版本放进去就不会有问题了.
https://sites.google.com/a/chromium.org/chromedriver/downloads

fengwolf3 发表于 2019-4-18 11:21

楼主 这个适用京东cookie登录吗

vsyour 发表于 2019-4-18 11:28

fengwolf3 发表于 2019-4-18 11:21
楼主 这个适用京东cookie登录吗

京东也是适合的

huguo002 发表于 2019-4-18 17:18

调用了看不懂得模块 头好大 脑阔痛。。
页: [1] 2
查看完整版本: 记录自用python selenium 取cookie免登陆小技巧