如何构建Cookie池-2

描述

一.项目背景

    在之前文章构建Cookie池(一)我们介绍了如何全自动化利用Selenium构建Cookie池。但是在实际开发中,我们经常会遇到反爬措施,成功登录网页的情况也不常见,比如会遇到图形验证码和滑块等,破解时也比较麻烦,比较好的方法就是我们手动协助登录,也就是半自动化式获取Cookie,这也相对来说是一个比较万能的方法。

   本次项目我们爬取的目标网址还是闪职网,一个专门为爬虫工程师进行练习的网址,也
   在此非常感谢网站后台维护人员辛勤付出,网址为:http://shanzhi.spbeen.com/,从
中可以看出Cookies有csrftoken和shanzhi_kmer以及它们各自对应的值

 

全自动化

 

二.实现过程

from selenium import webdriver
import time
import json


#用户名
users=[
    {'username':'test123456','password':'test123456'},
    {'username':'wfq123','password':'123'},
    {'username':'cauwfq','password':'cauwfq'},
    {'username':'cauwfq1234','password':'cauwfq1234'}
]

#程序将预处理内容全部处理好
#浏览器等着用户来处理,比如登录
#用户处理的同时,程序一直在监听
#直到用户直接关闭浏览器,程序发生异常,继续往下执行

def wait_cookie(driver):
    #循环监听
    while True:
        try:
            #获取cookies
            cookie_list=driver.get_cookies()
            #获取cookie值
            cookie_dict={ck['name']:ck['value'] for ck in cookie_list}
            #输出cookie值
            print(cookie_dict)
        except:
            #写入文件
            with open('./cookies_1.txt', 'a+', encoding='utf8') as f:
                #写入字典
                f.write(json.dumps(cookie_dict))
                #写入换行符
                f.write('n')
            break
    #睡眠3s
    time.sleep(3)


#登录网址
def login(username,password):
    #初始化url
    url='http://shanzhi.spbeen.com/login/'
    #初始化webdriver
    driver=webdriver.Chrome()
    #最大化窗口
    driver.maximize_window()
    #请求url
    driver.get(url)
    #用户名输入框
    username_input=driver.find_element_by_xpath('//*[@id="username"]')
    #发送用户名
    username_input.send_keys(username)
    #休眠1秒钟
    time.sleep(1)
    #密码输入框
    password_input=driver.find_element_by_xpath('//*[@id="MemberPassword"]')
    #发送密码
    password_input.send_keys(password)
    #获取cookie
    wait_cookie(driver)


if __name__ == '__main__':
    #遍历每个用户
    for user in users:
        #登录获取cookie
        login(user['username'],user['password'])

 

全自动化
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分