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发送邮件示例(支持中文邮件标题)
Feb 16 Python
Python中的pprint折腾记
Jan 21 Python
go语言计算两个时间的时间差方法
Mar 13 Python
python非递归全排列实现方法
Apr 10 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
python实现在线翻译功能
Mar 03 Python
python 动态绘制爱心的示例
Sep 27 Python
详解用 python-docx 创建浮动图片
Jan 24 Python
Python数据类型最全知识总结
May 31 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
无限级别菜单的实现
2006/10/09 PHP
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
python读取csv文件示例(python操作csv)
2014/03/11 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python中字典增加和删除使用方法
2020/09/30 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
南威尔士家居商店:Leekes
2016/10/25 全球购物
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
英国领先的游戏零售商:GAME
2019/09/24 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
中海讯通笔试题
2015/09/15 面试题
中科软测试工程师面试题
2012/06/16 面试题
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
六一儿童节主持开场白
2015/05/28 职场文书