python爬虫之利用selenium模块自动登录CSDN

 更新时间:2021年04月22日 11:43:34   作者:置顶 lexsaints  
这篇文章主要介绍了python爬虫之利用selenium模块自动登录CSDN,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下

一、页面分析

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启动文件并列的目录下:

三、爬虫模拟登录

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

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")

3.5 模拟登录点击

分析页面结构,模拟点击登录按钮。

分析可获得,登录按钮的class属性为btn btn-primary,根据class来锁定该按钮

time.sleep(1)
#增加一秒钟的时间间隔
browser.find_element_by_css_selector("[class='btn btn-primary']").click()

四、成功登录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的Crypto模块实现AES加密实例代码

    python的Crypto模块实现AES加密实例代码

    这篇文章主要介绍了python的Crypto模块实现AES加密实例代码,简单介绍了实现步骤,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python中的三种注释方法

    python中的三种注释方法

    这篇文章主要介绍了python中的三种注释方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • python面向对象多线程爬虫爬取搜狐页面的实例代码

    python面向对象多线程爬虫爬取搜狐页面的实例代码

    这篇文章主要介绍了python面向对象多线程爬虫爬取搜狐页面的实例代码,需要的朋友可以参考下
    2018-05-05
  • python编程普通及类和静态方法示例详解

    python编程普通及类和静态方法示例详解

    普通方法会将实例传入方法当中(通常用self表示),类方法会将类传入方法当中(通常用cls表示),静态方法中传入与类无关的变量。下面将举例详细说明
    2021-10-10
  • OpenCV 光流Optical Flow示例

    OpenCV 光流Optical Flow示例

    这篇文章主要为大家介绍了OpenCV 光流Optical Flow示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • python配置mssql连接的方法

    python配置mssql连接的方法

    这篇文章主要介绍了python配置mssql连接的方法,需要的朋友可以参考下
    2021-06-06
  • uwsgi+nginx部署Django项目操作示例

    uwsgi+nginx部署Django项目操作示例

    这篇文章主要介绍了uwsgi+nginx部署Django项目操作,结合实例形式简单介绍了uwsgi的概念、原理、安装、项目创建、配置、调试运行等相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • Python通过TensorFLow进行线性模型训练原理与实现方法详解

    Python通过TensorFLow进行线性模型训练原理与实现方法详解

    这篇文章主要介绍了Python通过TensorFLow进行线性模型训练原理与实现方法,结合实例形式详细分析了Python通过TensorFLow进行线性模型训练相关概念、算法设计与训练操作技巧,需要的朋友可以参考下
    2020-01-01
  • Python matplotlib实战之气泡图绘制

    Python matplotlib实战之气泡图绘制

    气泡图是一种多变量的统计图表,可以看作是散点图的变形,这篇文章主要为大家介绍了如何使用Matplotlib绘制气泡图,需要的小伙伴可以参考下
    2023-08-08
  • 基于Python实现wifi连接小程序

    基于Python实现wifi连接小程序

    这篇文章主要为大家详细介绍了如何使用Python编程语言编写一个简单的连接Wi-Fi的程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01

最新评论