python登录爬虫
代码
# 引入selenium库中的 webdriver 模块
from selenium import webdriver
# 引入time库
import time
def renrenBrower(user, password):
try:
# 设置Chrome
opt = webdriver.ChromeOptions()
# False为显示,True为不显示
opt.headless = False
driver = webdriver.Chrome(options=opt)
# 打开csdn登录页面
driver.get('https://passport.csdn.net/newlogin?code=mobile')
# 程序睡眠2秒
time.sleep(2)
# 关闭广告 让登录表单用户名密码及按钮显示出来
driver.find_elements_by_xpath('//span[@class="toolbar-adver-btn"]')[0].click()
# 点击密码登录四个字
driver.find_elements_by_xpath('//div[@class="login-box-tabs-items"]/span')[1].click()
time.sleep(2)
# 填写用户名密码 一般情况下用id选择,但是本例不可以
# driver.find_element_by_xpath('//*[@id="uid"]').send_keys(user)
# driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
driver.find_elements_by_xpath('//input[@class="base-input-text"]')[0].send_keys(user)
driver.find_elements_by_xpath('//input[@class="base-input-text"]')[1].send_keys(password)
time.sleep(2)
# 点击登录按钮
driver.find_elements_by_xpath('//button[@class="base-button"]')[0].click()
time.sleep(60)
# if len(driver.find_elements_by_xpath('//div[@class="msgFrame"]')):
# print("success")
# else:
# print("fail")
except Exception as e:
print(str(e))
if __name__ == '__main__':
renrenBrower('yourusername', 'yourpassword')
需求
公司需求写个爬虫模拟登录,环境下需要准备chromedriver.exe
这个网址下载
http://npm.taobao.org/mirrors/chromedriver/
本例使用csdn登录编写
说明
打开csdn登录界面,打开出现半页的广告。。。。
xpath解析寻找需要显示在页面中,所以如果不关闭广告会报错
Message: element not interactable
时间2021-11-11
将我将下载好的驱动exe放在pycharm工程的script下,和pip exe放在了一起