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中method的参数传递过程
Apr 02 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
Python 函数返回值的示例代码
Mar 11 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
Jul 04 Python
python爬取盘搜的有效链接实现代码
Jul 20 Python
Python 转换RGB颜色值的示例代码
Oct 13 Python
Python CSV文件模块的使用案例分析
Dec 21 Python
Python2与Python3关于字符串编码处理的差别总结
Sep 07 Python
python 可视化库PyG2Plot的使用
Jan 21 Python
PyCharm常用配置和常用插件(小结)
Feb 06 Python
使用python+pygame开发消消乐游戏附完整源码
Jun 10 Python
baselines示例程序train_cartpole.py的ImportError
May 20 Python
Python数据清洗工具之Numpy的基本操作
Python基础之Socket通信原理
python numpy中setdiff1d的用法说明
Apr 22 #Python
一行代码python实现文件共享服务器
Apr 22 #Python
python数据分析之用sklearn预测糖尿病
python文件名批量重命名脚本实例代码
python爬虫之爬取笔趣阁小说
You might like
Cakephp 执行主要流程
2010/03/24 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
ECMAScript6函数默认参数
2015/06/12 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
利用Python爬取可用的代理IP
2016/08/18 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
python实现的AES双向对称加密解密与用法分析
2017/05/02 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
python之生产者消费者模型实现详解
2019/07/27 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
应届行政管理专业个人自我评价
2013/12/28 职场文书
停车场管理协议书范本
2014/10/08 职场文书
六年级数学教学反思
2016/02/16 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
python flask框架快速入门
2021/05/14 Python
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
日本官方排名前10的动漫,名侦探柯南上榜,第一是一部创造历史的动漫
2022/03/18 日漫