吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19690|回复: 108
收起左侧

[Python 原创] 【原创】批量自动注册OneDrive 5T 账号python+selenium实现

  [复制链接]
iknew 发表于 2019-7-25 11:19
本帖最后由 iknew 于 2019-12-10 14:59 编辑

里面用到的临时邮箱地址已经不能用了...如果有需要可以自己去找找类似的可用邮箱,大多都可以直接替换域名,如果邮箱网页模板和我给的这个不一样需要自己改下代码中的元素名称更新一下,程序主要就两块儿:
sign_up()功能:
1. 设置临时邮箱
2. 填写注册信息
3. 等待验证
4. 填写验证码
5. 完成注册


main()功能:
1. 注册名称设置
2. selenium参数设置
3. 调用sign_up()
4. 注册后的账号密码写入文件


潜水三年贡献本人第一帖(其实2013还是14年那会儿就注册了,只是账号忘了),第一次发帖,有违规地方请及时提醒修改,多谢!



前段时间学习python,本来是为了数据分析的,结果学偏了学到爬虫这块儿了...0_o ,碰巧前些日子需要用到OneDrive,在吾爱找到了免费注册5t的方法,发现利用临时邮箱可以无限注册0_o .. o_0 ,而且某宝上有很多卖OneDrive的,就想着应该可以批量注册,也就有了下面的代码。


本人小白,代码中很多不规范、臃肿的地方,有大神发现希望能提供更好的方法,多谢!
短时间内注册太多ip会被封20分钟左右,由于网上的免费代、理太垃圾我就把换ip的那部分代码去掉了。
由于还没学习多线程,注册效率完全跟网速挂钩,希望有好的方法可以提出讨论


以下代码仅供参考讨论,请勿用于商业或者非法用途,否则,一切后果请自负!!
以下代码仅供参考讨论,请勿用于商业或者非法用途,否则,一切后果请自负!!
以下代码仅供参考讨论,请勿用于商业或者非法用途,否则,一切后果请自负!!


[Python] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# coding = utf-8
# 以下代码仅供参考讨论,请勿用作其它非法用途
# [url=http://www.52pojie.cn]www.52pojie.cn[/url]
 
# python 3.7
# @Author:iknew
 
from bs4 import BeautifulSoup as bs
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import selenium
import time
import csv
import random
from mock_useragent import UserAgent
 
‘’‘1. 设置临时邮箱
2. 填写注册信息
3. 等待验证
4. 填写验证码
5. 完成注册
’‘’
 
def sign_up(name,pwd):
    global element
    email = name + '@t.odmail.cn'
 
    url = 'https://t.odmail.cn/'
    code = ''
    browser.get(url)
    time.sleep(3)
    try:
        browser.implicitly_wait(15)
        element = browser.find_element_by_id('customShortid')
    except selenium.common.exceptions.NoSuchElementException:
        print('网页加载不出来')
        sign_up(name,pwd)
    element.click()
    browser.implicitly_wait(5)
    browser.find_element_by_id('shortid').send_keys(name)
    browser.implicitly_wait(5)
    element.click()
    print('email set up ...')
    # browser.execute_script(js)
    js = 'window.open("https://signup.microsoft.com/signup/index?sku=faculty");'
    browser.execute_script(js)
    windows = browser.window_handles
    browser.switch_to.window(windows[1])
    browser.implicitly_wait(30)
    browser.find_element_by_id("StepsData_Email").send_keys(email)
    browser.implicitly_wait(2)
    browser.find_element_by_class_name('mpl-button-box-text').click()
    browser.switch_to.window(windows[0])
    print('waiting for verification code ...')
 
    while code == '':
        time.sleep(3)
        browser.find_element_by_id('maillist')
        r = browser.find_element_by_id('maillist').text
        code = r[49:55]
    print('Got the verification code:{}\n'.format(code))
    browser.implicitly_wait(10)
    #切换窗口到注册页面填写信息、验证码:
    browser.switch_to.window(windows[1])
    browser.implicitly_wait(20)
    try:   
        element = browser.find_element_by_class_name('last-name')
        element.send_keys('o')
    except selenium.common.exceptions.ElementNotInteractableException: browser.quit()
    browser.implicitly_wait(5)
    browser.find_element_by_class_name('first-name').send_keys('o')
    browser.implicitly_wait(5)
    browser.find_element_by_id('Password').send_keys(pwd)
    browser.implicitly_wait(5)
    browser.find_element_by_id('RePassword').send_keys(pwd)
    browser.implicitly_wait(5)
    browser.find_element_by_id('SignupCode').send_keys(code)
    browser.implicitly_wait(10)
    browser.find_element_by_class_name('mpl-button-box-text').click()
    print('注册的账号密码:{0},{1},  验证码:{2}\n'.format(email,pwd,code))
    try:   
        browser.implicitly_wait(20)
        element = browser.find_element_by_class_name('ms-fcl-tp')
        element.click()
    except selenium.common.exceptions.StaleElementReferenceException:
        browser.refresh()
    return [email,pwd]
 
’‘’1. 注册名称设置2. selenium参数设置
3. 调用sign_up()
4. 注册后的账号密码写入文件
'''
def main():
    global browser
    n = 0
    for i in range(1,1000):  #   设置注册ID范围,程序中断需要手动修改起始位置...       
        name = '这里填你想要的名称'+str(i) 
        pwd = 'One.'+str(random.randint(1000,9990))
 
        t = time.time()
        agent = UserAgent.random_chrome
        options = Options()
        options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors"])#避免一些无关紧要的报错
        options.add_argument('--user-agent={}'.format(agent))
        options.add_argument('--ignore-certificate-errors')
        options.add_argument('--ignore-ssl-errors')
        options.add_argument('--start-maximized')   #窗口最大化,感觉不太需要
        options.add_argument('--window-size=1920,1080')#设置窗口大小
        options.add_argument('--headless')          # 后台运行,可注释掉查看自动注册流程
        browser = webdriver.Chrome(chrome_options= options)
#调用sign_up函数注册
        user = sign_up(name,pwd)
        f = open('onedrive.csv','a',newline='')
        writer = csv.writer(f)
        f.seek(0,2)
        writer.writerow(user)
        f.close()
        n += 1
        print('Time now:{0}'.format(time.strftime("%Y%m%d %X", time.localtime())))
        print('注册第 "{}"个用时:{:.2f} 秒'.format(n,time.time()-t),end='\n---------------------')
        browser.quit()
        if n % 20 == 0 :
            print('休息10分钟,避免IP被封')
            time.sleep(600)
 
if __name__ == "__main__":
    main()




老新人求点免费评分,谢谢啦
onedrive.zip (1.87 KB, 下载次数: 947)



免费评分

参与人数 19吾爱币 +17 热心值 +13 收起 理由
Dolyn + 1 我很赞同!
taozididi + 1 我很赞同!
路过的人而已 + 1 + 1 我很赞同!
neword + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
JSNL + 1 <font style="vertical-align: inherit;"><font style=
linkhyp + 1 + 1 谢谢@Thanks!
alittlebear + 1 + 1 谢谢@Thanks!
rockingvs + 1 我很赞同!
落花时节又逢君 + 1 + 1 热心回复!
uTorrent + 1 + 1 我很赞同!
悠度科技 + 1 + 1 热心回复!
tynh + 1 谢谢@Thanks!
h888866j + 1 + 1 谢谢@Thanks!
mikeee + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
liuguanyi + 1 谢谢@Thanks!
钒事钒事 + 1 + 1 热心回复!
risingsun + 1 我很赞同!
果汁分妳一半 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
西式蛋糕 + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

h888866j 发表于 2019-8-5 15:34
本帖最后由 h888866j 于 2019-8-6 13:26 编辑
iknew 发表于 2019-8-5 13:24
额,附件的代码和贴子里的代码行数不一样我忘了,,你把95行↓↓注释掉
[mw_shl_code=python,true]optio ...

这次可以了,但是有点问题,

email set up ...
waiting for verification code ...
Got the verification code:692383

注册的账号密码:123@t.odmail.cn,One.53,  验证码:692383

Traceback (most recent call last):
  File "C:/Users/h888866j/Desktop/onedrive.py", line 114, in <module>
    main()
  File "C:/Users/h888866j/Desktop/onedrive.py", line 99, in main
    user = sign_up(name,pwd)
  File "C:/Users/h888866j/Desktop/onedrive.py", line 76, in sign_up
    element.click()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable
  (Session info: headless chrome=75.0.3770.142)
  (Driver info: chromedriver=70.0.3538.97 (d035916fe243477005bc95fe2a5778b8f20b6ae1),platform=Windows NT 10.0.15063 x86_64)

 楼主| iknew 发表于 2019-8-5 13:24
本帖最后由 iknew 于 2019-8-5 13:26 编辑
h888866j 发表于 2019-8-5 13:12
不行的,都没走到110行。99行跳到16行,再往下走,应该还在48行那个循环里没出来。

可能需要

额,附件的代码和贴子里的代码行数不一样我忘了,,你把95行↓↓注释掉
[Python] 纯文本查看 复制代码
1
options.add_argument('--headless')          # 后台运行,可注释掉查看自动注册流程

再看看,等验证码的时间跟你的网速也有关系,网速快的话30秒左右,不好的话等验证码要等100秒也正常
lioow_19960806 发表于 2019-7-25 11:29
看起来,很厉害的样子呀

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
17711600400 + 1 + 1 我很赞同!

查看全部评分

17711600400 发表于 2019-7-25 11:31
不懂,但是要装着很懂的样子
摇裤儿 发表于 2019-7-25 11:32
这些代码完全看不懂,先码一个
天际遥山小 发表于 2019-7-25 11:33
看起来很厉害的样子
zzgaot 发表于 2019-7-25 11:35
先收藏了,慢慢再消化。
cduang 发表于 2019-7-25 11:43
先收藏啦,谢谢楼主分享
世间寂寞 发表于 2019-7-25 11:52
先收藏,后面再试一试
头像被屏蔽
wangxingchun 发表于 2019-7-25 11:54
提示: 作者被禁止或删除 内容自动屏蔽
西式蛋糕 发表于 2019-7-25 11:55
支持,虽然看不懂-_-||
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-22 15:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表