Python模拟登录和登录跳转

# coding:utf-8
import urllib
import urllib2
import cookielib
from bs4 import BeautifulSoup
# 设置登录url
login_url = "******************"
# 创建登录类
class Login(object):
    #初始化
    def __init__(self):
        self.username = ''
        self.password = ''
        # 验证码
        self.rode = ''
        #设置cookie
        self.cj = cookirlib,LWPCookieJar()
        self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
        urllib2.install_opener(self.opener)

    def setLoginInfo(self, username, passwoed ,rode):
        """设置登录用户信息"""
        self.username = username
        self.password = password
        self.rode = rode

    def login(self):
        """"模拟登录"""
        login_data = {'username': self.username, 'password': self.password, 'rode': self.rode}
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2859.0 Safari/537.36'}
        req = urllib2.Request(login_url, data=urllib.urlencode(login_data), headers=headers)
        response = urllibs.urlopen(req)
        # 加cookie, 自动保存seissionid,做后续跳转
        self.operate = self.opener.open(req)
        # 通过BeautifulSoup获取网页内容
        soup = BeautifulSoup(response, 'lxml')
        # 获取网页的content
        data = soup.select('#content')
        if data:
            print u'模拟登录成功!', data
        print u'模拟登录失败!'

   def skip(self, skip_url):
       """
       模拟登录成功后,跳转网页
       ----------------------------
       传递跳转网页的url
      """
       headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2859.0 Safari/537.36'}
       req = urllib2.Request(skip_url, headers=headers)
       response = urllib2.urlopen(req)
       soup = BeautifulSoup(response, 'lxml')
       # 获取跳转后网页的title
       print soup.title.string

if __name__ == "__main__":
    userlogin = Login()
    username = '***********'
    password = '***********'
    rode = '***********'
    # 执行模拟登录方法
    userlogin.login()
    # 执行模拟登录成功后网页跳转方法
    user_login.skip(skip_url = '***************') 
### 回答1: 以下是Python模拟微博登录的示例代码: ```python import requests from bs4 import BeautifulSoup # 构造请求头部 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 登录页面URL login_url = 'https://passport.weibo.cn/signin/login' # 构造登录请求表单数据 data = { 'username': 'your_username', # 替换为你的微博账号 'password': 'your_password', # 替换为你的微博密码 'savestate': '1', 'r': '', 'ec': '0', 'pagerefer': 'https://passport.weibo.cn/signin/welcome?entry=mweibo&r=https%3A%2F%2Fm.weibo.cn%2F', 'entry': 'mweibo' } # 发送登录请求 session = requests.session() response = session.post(login_url, headers=headers, data=data) # 获取登录后的首页内容 home_url = 'https://m.weibo.cn/' response = session.get(home_url, headers=headers) soup = BeautifulSoup(response.content, 'html.parser') print(soup) ``` 请注意,微博登录需要输入验证码,上述示例代码并未处理验证码。如果出现验证码,需要手动输入或者使用第三方库进行识别。此外,微博登录也可能需要进行短信验证等额外步骤。 ### 回答2: Python可以使用Selenium库来模拟微博登录。 Selenium是一个自动化测试工具,可以模拟用户在浏览器中的操作。首先,我们需要安装Selenium库和一个浏览器驱动,比如ChromeDriver。 接下来,我们可以使用以下代码模拟微博登录: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys import time # 创建一个Chrome浏览器的实例 driver = webdriver.Chrome() # 打开微博登录页面 driver.get("https://weibo.com/login.php") # 定位到用户名和密码的输入框,并输入相应的值 username_input = driver.find_element_by_name("username") username_input.send_keys("your_username") password_input = driver.find_element_by_name("password") password_input.send_keys("your_password") # 提交登录信息 password_input.send_keys(Keys.ENTER) # 等待登录成功并跳转到首页 time.sleep(5) # 打印登录成功后的页面标题 print(driver.title) # 关闭浏览器 driver.quit() ``` 上述代码首先创建一个Chrome浏览器实例,然后打开微博登录页面。接着,通过`find_element_by_name`方法定位到用户名和密码的输入框,并使用`send_keys`方法输入相应的值。 然后,通过`send_keys(Keys.ENTER)`方法提交登录信息。登录成功后,等待5秒钟,然后打印登录成功后的页面标题。 最后,关闭浏览器。 通过这样的方式,我们可以使用Python模拟微博登录,实现自动化登录功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值