from selenium import webdriver
import time
import requests
from lxml import etree
import base64

# https://market.aliyun.com/products/57124001/cmapi028447.html?spm=5176.2020520132.101.5.zdlUnT#sku=yuncode2244700000
# 操作浏览器
driver = webdriver.Chrome()
url = 'https://accounts.douban.com/login?alias=&redir=https%3A%2F%2Fwww.douban.com%2F&source=index_nav&error=1001'

driver.get(url)
time.sleep(1)
driver.find_element_by_id('email').send_keys('18510556963')
time.sleep(1)
driver.find_element_by_id('password').send_keys('')
time.sleep(1)

# 获取验证码相关信息
html_str = driver.page_source
html_ele = etree.HTML(html_str)
# 得到验证码的url
image_url = html_ele.xpath('//img[@id="captcha_image"]/@src')[0]
# 获取这个图片的内容
response = requests.get(image_url)

# 获取base64的str
#  https://market.aliyun.com/products/57124001/cmapi028447.html?spm=5176.2020520132.101.5.2HEXEG#sku=yuncode2244700000
b64_str = base64.b64encode(response.content)
v_type = 'cn'
# post 提交打码平台的数据
form = {
    'v_pic': b64_str,
    'v_type': v_type,
}

# authtication的header
headers = {
    'Authorization': 'APPCODE eab23fa1d03f40d48b43c826c57bd284',
}
# 从打码平台获取验证码信息
dmpt_url = 'http://yzmplus.market.alicloudapi.com/fzyzm'
response = requests.post(dmpt_url, form, headers=headers)
print(response.text)
# captcha_value 就是我们的验证码信息
captcha_value = response.json()['v_code']

print(image_url)
print(captcha_value)
# captcha_value = input('请输入验证码')

driver.find_element_by_id('captcha_field').send_keys(captcha_value)
time.sleep(1)
driver.find_element_by_class_name('btn-submit').click()
time.sleep(1)
# 获取所有的cookie的信息
cookies = driver.get_cookies()
cookie_list =[]

# 对于每一个cookie_dict, 就是将name 和 value取出, 拼接成name=value;
for cookie_dict in cookies:
    cookie_str = cookie_dict['name'] + '=' + cookie_dict['value']
    cookie_list.append(cookie_str)

# 拼接所有的cookie到header_cookie中
header_cookie = '; '.join(cookie_list)

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
    'Cookie': header_cookie,
}
another_url = 'https://www.douban.com/accounts/'
response = requests.get(another_url, headers=headers)

with open('cc.html', 'wb') as f:
    f.write(response.content)

# with open('douban.html', 'wb') as f:
#     f.write(driver.page_source.encode('utf-8'))

转载于:https://www.cnblogs.com/luwanhe/p/9515739.html

selenium豆瓣登陆相关推荐

  1. selenium模拟登陆豆瓣并获取cookies

    验证码处理与模拟登陆豆瓣,首先我们看到豆瓣没有cookies,我们需要用程序来模拟登陆获取cookies(当前有些情况下自己手动登陆后复制粘贴cookies也能登陆),该文主要讲方法,如何用selen ...

  2. Pyton爬虫实现豆瓣登陆

    目标:实现豆瓣登陆: 方法:使用requests.Session 来处理cookies 问题:验证码输入 关于headers 1.实现登陆 # -*- coding: utf-8 -*- import ...

  3. 爬取知乎壁纸:selenium模拟登陆获取cookies,再将cookies传递给requests

    selenium很好用,但是爬取大量数据时速度较慢. 通过selenium模拟登陆,获取cookies,再将cookies传递给requests,通过requests爬取加快速度. 以为知乎网爬取壁纸 ...

  4. selenium模拟登陆淘宝遇到的问题及解决

    今天忽然想用爬虫登陆淘宝,于是就试着写一下, 我是用selenium模拟登陆,我先是打开淘宝登陆页面发现淘宝的登陆界面是这样的 我就用代码写了一个模拟登陆:如下这是最终代码 import time f ...

  5. java使用Selenium模拟登陆58(验证码登陆密码登陆)若快平台识别文字点击验证码

    文章目录 写在前面 配置环境 Selenium入门 使用Selenium登陆58 若快平台识别文字点击验证码 附: By对象中的 xpath & cssSelector获取方式** 不打开浏览 ...

  6. selenium模拟登陆淘宝,获取cookies

    新年工作第一天,再次祝大家新年快乐,猪年大吉! 1.前言,前期准备 这次分享一下模拟登陆淘宝实记.淘宝作为中国几大电商网站之一,反爬措施可以说是相当完善的,在这里我会分享出我是如何使用selenium ...

  7. python实例豆瓣代码_Python实例:通过selenium模拟登陆豆瓣

    前几天写的<Python实例:分析豆瓣影片评论Ver 1.0版本>文章中,关于爬取数据过频繁导致IP被封禁的事情让我对豆瓣数据的爬取中断了.忽然想到之前有写过关于关于使用selenium库 ...

  8. selenium模拟登陆豆瓣网

    前言 随着网站安全做的越来越好,不少网站,直接去爬取数据是无法爬出来的,必须要验证登陆,即登陆之后才能做后面的操作,因此需要解决的第一步就是登陆 登陆的常用方式: 1.使用request库,模拟pos ...

  9. selenium模拟登陆时截取验证码

    模拟登陆时,经常会遇到有验证码的问题,那么就需要把验证码给截取下来. 如下为截取验证码程序,该程序的原始地址为:http://www.cnblogs.com/donaldlee2008/p/53045 ...

最新文章

  1. Nature:1000种植物的测序揭示10亿年来的进化
  2. python第二天练习题
  3. LeetCode(69):x 的平方根
  4. JAVA——TextArea和JTextArea添加滚动条(ScrollBars)
  5. 百度分享--分享按钮的实现
  6. js 序列化内置对象_内置序列化技术
  7. 温故而知新!这篇文章可以满足你80%日常工作!面试真题解析
  8. ios查看线程数量_关于iOS多线程,你看我就够了(已更新)
  9. 浅谈 Linux API的交互式运行环境ipython是最好的REPL
  10. Restful 表述性状态传递
  11. ES6学习笔记03:变量的解构赋值
  12. 高评分防火墙GlassWire:帮你监控、追踪和提升电脑安全
  13. 编译一个.cpp文件的过程
  14. 3D STL文件解析
  15. 游戏角色设计思路规划路径有哪些?
  16. SCM-PEG2000-Maleimide,Mal-PEG2000-Succinimidyl Carboxymethyl Ester
  17. ArcEngine 开发之ITopologicalOperator 处理奇葩问题解决
  18. 2022年HELIUM3将引领链游开启gaming2.0时代
  19. JavaFX应用程序图标
  20. sd卡tf卡进入spi模式

热门文章

  1. 【​SC17观察】美国丹佛现场直击SC17 探寻计算力增长的困局和破局
  2. 期货开户的身份识别验证
  3. mpvue 微信小程序api_mpVue 小程序框架 SDK
  4. git本地仓库与GitHub的同步
  5. verilog编写数字频率计
  6. 现在才发现:敏捷迭代的好处实在太多了
  7. LaTex案例——制作三线表
  8. 披着微电影外衣的广告 在扼杀微电影产业
  9. Capacitor实现WebView中访问的自定义Android代码
  10. R语言科学计数法详解:digits和scipen设置