python爬虫-模拟登陆新浪微+博爬取感兴趣人的所有信息,作为字节跳动面试官

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions

from selenium.webdriver.common.by import By

import bs4

import time

def login(url,username,password):

‘’’

用于登录微博 :param url:微博的登录接口 :param username: 用户名 :param password: 密码 :return: cookie

‘’’ #browser = webdriver.Chrome() #用谷歌浏览器实验 browser = webdriver.PhantomJS(“E:/phantomjs-2.1.1-windows/bin/phantomjs.exe”) #用PhantomJS

browser.maximize_window() #设置窗体为最大,如果没有这一行,表单可能无法操作

browser.get(url) #打开登陆用的网页

print(“开始登陆”)

username_ele = browser.find_element_by_id(“loginname”) #找到用于输入用户名的表格

username_ele.clear() #清空表格

username_ele.send_keys(username) #输入账户

password_ele = browser.find_element_by_name(“password”) #找到用于输入密码的表格

password_ele.clear() #清空表格

password_ele.send_keys(password) #输入密码

submit = browser.find_element_by_xpath(‘//*[@id=“pl_login_form”]/div/div[3]/div[6]/a/span’) #找到用于提交表单的类型为submit的input

submit.click() #点击

time.sleep(5)

WebDriverWait(browser, 10).until(expected_conditions.presence_of_element_located((By.CLASS_NAME, ‘WB_miniblog’))) #等待登陆页面加载完成

if is_ele_exist(browser,“loginname”):

print(“登录失败”)

browser.quit()

return None

print(“登陆成功”)

#return print(browser.get_cookies()

return browser #返回获得的cookie

def is_ele_exist(browser,id):

‘’’

根据一个id判断当前页面元素是否存在,find方法没有找到元素会抛出异常,利用异常判断元素是否存在 :param browser: 浏览器 :param id: 元素id :return: 存在返回True,不存在返回False

‘’’ try:

s = browser.find_element_by_class_name(id)

return True

except:

return False

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值