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 相关文章推荐
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
python执行系统命令后获取返回值的几种方式集合
May 12 Python
python3实现基于用户的协同过滤
May 31 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
python基于Selenium的web自动化框架
Jul 14 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
Python hashlib模块加密过程解析
Nov 05 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
Apr 01 Python
Python实现进度条和时间预估的示例代码
Jun 02 Python
Python实现8种常用抽样方法
Jun 27 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
关于Laravel Route重定向的一个注意点
2017/01/16 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
使用Python对Dicom文件进行读取与写入的实现
2020/04/20 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
房屋买卖协议书
2014/04/10 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
社区先进事迹材料
2014/05/19 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
二审答辩状格式
2015/05/22 职场文书
党纪处分决定书
2015/06/24 职场文书
追悼会家属答谢词
2015/09/29 职场文书
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js