wp231957 发表于 2021-3-11 09:12:27

各路高手,碰到一个实际工作中的问题,探讨一下用python能否实现自动化

一个登陆程序,我需要的是 用一台电脑 登陆60+个账号,密码,就是登陆一个,退出 再登陆下一个,再继续退出
这个用人工做 会很麻烦的各路高手能否指点一下代码能否实现

pytho 发表于 2021-3-11 09:20:52

代码当然可以了,一次登录60个都没问题

wp231957 发表于 2021-3-11 09:27:52

pytho 发表于 2021-3-11 09:20
代码当然可以了,一次登录60个都没问题

具体应该怎么做呢,需要用到哪个模块

逃兵 发表于 2021-3-11 09:30:18

浏览器账号登录的话可以用webdriver

程序登录的话可以尝试pywin32+pyautogui

pytho 发表于 2021-3-11 09:32:17

wp231957 发表于 2021-3-11 09:27
具体应该怎么做呢,需要用到哪个模块

requests模块就可以了
大概这个样子

import requests

headers = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36",
        "Accept": "application/json, text/plain, */*",
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8'
}
def login(name,password):
        url = 'https://xxxx'
        data = {
                "password":password,
                "name":name

        }
       
        res = requests.post(url,data,headers = headers)
        print(res.txt)

def main():
        password = '123456'
        with open('用户名.txt','r') as f:
                names = f.readlines()
                for u in names:
                        u = (u.strip("\n"))
                       
                        login(u, password)
if __name__ == '__main__':
        main()

pytho 发表于 2021-3-11 09:33:34

wp231957 发表于 2021-3-11 09:27
具体应该怎么做呢,需要用到哪个模块

登录的话requests模块就够了
弄了一个示例代码,不过在审核中

wp231957 发表于 2021-3-11 09:39:14

pytho 发表于 2021-3-11 09:33
登录的话requests模块就够了
弄了一个示例代码,不过在审核中

不是浏览器登陆,是程序

pytho 发表于 2021-3-11 09:54:49

wp231957 发表于 2021-3-11 09:39
不是浏览器登陆,是程序

哦哦,这个没搞过
你看看4楼的方法

wp231957 发表于 2021-3-11 09:56:15

逃兵 发表于 2021-3-11 09:30
浏览器账号登录的话可以用webdriver

程序登录的话可以尝试pywin32+pyautogui

谢谢,我先搜一下

qq1151985918 发表于 2021-3-11 10:55:41

才60个都不够写代码麻烦的,直接复制粘贴不就好了么?除非是每天每次都要登录

Cool_Breeze 发表于 2021-3-11 11:05:59

pyautogui 点击点击登录,然后点击退出

将账户密码保存为文件,写个脚本解析文件
使用循环:
    1. 复制账号到粘贴板, pyautogui 点击输入框,粘贴
    2.复制密码,重复 1步骤。

kogawananari 发表于 2021-3-11 13:07:00

Cool_Breeze 发表于 2021-3-11 11:05
pyautogui 点击点击登录,然后点击退出

将账户密码保存为文件,写个脚本解析文件


我总感觉pyautogui库和pyperclip库有bug{:10_292:}
每一步都得sleep 不然会不按照顺序来 下面的代码会先于上面的代码执行

Cool_Breeze 发表于 2021-3-11 14:23:08

kogawananari 发表于 2021-3-11 13:07
我总感觉pyautogui库和pyperclip库有bug
每一步都得sleep 不然会不按照顺序来 下面的代码会先 ...

没有遇到过。。可能我用的少吧!

hrp 发表于 2021-3-11 14:32:00

Cool_Breeze 发表于 2021-3-11 11:05
pyautogui 点击点击登录,然后点击退出

将账户密码保存为文件,写个脚本解析文件


如果是安全性高点的密码输入框可能会粘贴不了

kogawananari 发表于 2021-3-11 14:35:15

hrp 发表于 2021-3-11 14:32
如果是安全性高点的密码输入框可能会粘贴不了

只有中文是需要粘贴的键盘上有键可以直接敲字母的不需要粘贴

Stubborn 发表于 2021-3-11 16:30:24

按键精灵,可以了解一下{:10_315:}

z5560636 发表于 2021-3-11 16:35:02

用win32API 不就好了吗?


import win32api
import time
#鼠标移动
def mouse_move(x,y):
    win32api.SetCursorPos()

#鼠标点击,默认左键
def mouse_click(click_type="left"):
    if click_type=="left":
      win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)   
    else:
      win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
    time.sleep(0.01)

#鼠标双击击,默认左键
def mouse_double_click(click_type="left"):
    if click_type=="left":
      win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
      time.sleep(0.01)
      win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

    else:
      win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
      time.sleep(0.01)
      win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
    time.sleep(0.01)

wp231957 发表于 2021-3-11 16:39:32

z5560636 发表于 2021-3-11 16:35
用win32API 不就好了吗?

输入呢,向用户名框和密码框输入咋弄

z5560636 发表于 2021-3-11 16:43:06

wp231957 发表于 2021-3-11 16:39
输入呢,向用户名框和密码框输入咋弄

from config import VK_CODE
import win32api

def key_input( input_words=''):
    for word in input_words:
      win32api.keybd_event(VK_CODE, 0, 0, 0)
      win32api.keybd_event(VK_CODE, 0, win32con.KEYEVENTF_KEYUP, 0)
      time.sleep(0.1)

def key_even( input_key):
    win32api.keybd_event(VK_CODE, 0, 0, 0)
    time.sleep(0.01)
    win32api.keybd_event(VK_CODE, 0, win32con.KEYEVENTF_KEYUP, 0)
    time.sleep(0.3)
页: [1]
查看完整版本: 各路高手,碰到一个实际工作中的问题,探讨一下用python能否实现自动化