python爬虫之利用selenium模块自动登录CSDN


Posted in Python onApril 22, 2021

一、页面分析

CSDN登录页面如下图

python爬虫之利用selenium模块自动登录CSDN

二、引入selenium模块及驱动

2.1 并将安装好的Chromedriver.exe引入到代码中

# -*- coding:utf-8 -*-
from selenium import webdriver  
import os
import time
#引入chromedriver.exe
chromedriver="C:/Users/lex/AppData/Local/Google/Chrome/Application/chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver)

2.2 浏览器驱动引入

将驱动下载后,复制chromedriver.exe 到谷歌浏览器的安装路径下,与Chrome.exe启动文件并列的目录下:

python爬虫之利用selenium模块自动登录CSDN

三、爬虫模拟登录

3.1 设置网址链接

#设置浏览器需要打开的url
url = "https://passport.csdn.net/login?code=public"  
browser.get(url)

3.2 切换到账号密码登录

使用selenium模拟点击 账号密码登录的选项

#使用selenium选择 账号登录按钮
browser.find_element_by_link_text("账号密码登录").click()

3.3 找到用户名密码的控件ID

python爬虫之利用selenium模块自动登录CSDN

3.4 注入用户名和密码

根据页面代码分析,获得用户名的id属性为all,密码的id属性为password-number

使用python代码,注入用户名密码

browser.find_element_by_id("all").clear()
browser.find_element_by_id("all").send_keys("xxxx@gmail.com")
time.sleep(2)
browser.find_element_by_id("password-number").clear()
browser.find_element_by_id("password-number").send_keys("1212121212")

python爬虫之利用selenium模块自动登录CSDN

3.5 模拟登录点击

分析页面结构,模拟点击登录按钮。

分析可获得,登录按钮的class属性为btn btn-primary,根据class来锁定该按钮

time.sleep(1)
#增加一秒钟的时间间隔
browser.find_element_by_css_selector("[class='btn btn-primary']").click()

python爬虫之利用selenium模块自动登录CSDN

四、成功登录CSDN

python爬虫之利用selenium模块自动登录CSDN

五、完整代码

# -*- coding:utf-8 -*-
import os
import time
from selenium import webdriver # 从selenium导入webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import json
import time
#引入chromedriver.exe
chromedriver="C:/Users/lex/AppData/Local/Google/Chrome/Application/chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver)
#设置浏览器需要打开的url
url = "https://passport.csdn.net/login?code=public"  
browser.get(url)
browser.find_element_by_link_text("账号密码登录").click()
browser.find_element_by_id("all").clear()
browser.find_element_by_id("all").send_keys("你的邮箱地址")
time.sleep(1)
browser.find_element_by_id("password-number").clear()
browser.find_element_by_id("password-number").send_keys("你的登录密码")
time.sleep(1)
browser.find_element_by_css_selector("[class='btn btn-primary']").click()

到此这篇关于python爬虫之利用selenium模块自动登录CSDN的文章就介绍到这了,更多相关python自动登录CSDN内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python性能优化技巧
Mar 09 Python
浅谈Python中函数的参数传递
Jun 21 Python
python3将视频流保存为本地视频文件
Jun 20 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
python代码 FTP备份交换机配置脚本实例解析
Aug 01 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
python中with用法讲解
Feb 07 Python
Python 实现日志同时输出到屏幕和文件
Feb 19 Python
学python爬虫能做什么
Jul 29 Python
Python confluent kafka客户端配置kerberos认证流程详解
Oct 12 Python
python 获取域名到期时间的方法步骤
Feb 10 Python
使用pipenv管理python虚拟环境的全过程
Sep 25 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
PHP5 字符串处理函数大全
2010/03/23 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
js document.write()使用介绍
2014/02/21 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
使用js画图之饼图
2015/01/12 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
谈谈Jquery中的children find 的区别有哪些
2015/10/19 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
Python subprocess模块学习总结
2014/03/13 Python
python检测远程端口是否打开的方法
2015/03/14 Python
python记录程序运行时间的三种方法
2017/07/14 Python
Python3实现购物车功能
2018/04/18 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
Python for循环及基础用法详解
2019/11/08 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
给老师的道歉信
2014/01/11 职场文书
十佳美德少年事迹材料
2014/02/05 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android