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 enumerate遍历数组示例应用
Sep 06 Python
Python实现的下载8000首儿歌的代码分享
Nov 21 Python
python使用xlrd模块读写Excel文件的方法
May 06 Python
举例详解Python中yield生成器的用法
Aug 05 Python
python去掉行尾的换行符方法
Jan 04 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
Python中实现单例模式的n种方式和原理
Nov 14 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 Python
Python 转换RGB颜色值的示例代码
Oct 13 Python
Python基于traceback模块获取异常信息
Jul 23 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
javascript实现简单的分页特效
2015/08/12 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
用python实现面向对像的ASP程序实例
2014/11/10 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
python flask几分钟实现web服务的例子
2019/07/26 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
学习雷锋精神心得体会范文
2014/03/12 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
英文请假条
2014/04/11 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫