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挑选文件夹里宽大于300图片的方法
Mar 05 Python
Python实现的个人所得税计算器示例
Jun 01 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
Python字典的概念及常见应用实例详解
Oct 30 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
Python 必须了解的5种高级特征
Sep 10 Python
python使用numpy中的size()函数实例用法详解
Jan 29 Python
使用python如何删除同一文件夹下相似的图片
May 07 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
web 页面分页打印的实现
2009/06/22 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
alert出数组中的随即值代码
2014/09/25 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Python实现多进程的四种方式
2019/02/22 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
介绍一下Java的安全机制
2012/06/28 面试题
工作会议欢迎词
2014/01/16 职场文书
公司请假条范文
2014/04/11 职场文书
实习推荐信
2014/05/10 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
高中美术教学反思
2016/02/17 职场文书
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS