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条件和循环的使用方法
Nov 01 Python
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
利用python发送和接收邮件
Sep 27 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
Python Cookie 读取和保存方法
Dec 28 Python
深入理解Django-Signals信号量
Feb 19 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
在Python中实现函数重载的示例代码
Dec 12 Python
Django 实现 Websocket 广播、点对点发送消息的代码
Jun 03 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
对比分析json及XML
2014/11/28 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
Pyinstaller将py打包成exe的实例
2018/03/31 Python
python多进程读图提取特征存npy
2019/05/21 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
2020/11/19 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
超市创业计划书
2014/04/24 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
七个Python必备的GUI库
2021/04/27 Python
Python绘制地图神器folium的新人入门指南
2021/05/23 Python