爬虫---ins注册脚本

news/2025/2/5 7:57:25/

访问这个网站首先要解决qiang的问题,这里就跳过了

重点:

1、该网站手机号可以重复注册,但是应该有一个预警机制,将失效的账号以邮件的方式发出来

2、爬取该网站最好尽量多的备手机号,100往上最好

3、如果手动注册最好将浏览器的语言改成英文,中文状态下连续注册会有限制

这里上传一个注册脚本,免去了手动注册,但是手机验证码需要手动加入,如果有猫池的话比较好

注册成功后会将cookie打印出来,可以保存到文件或redis中,轮询调用

# -*- coding: utf-8 -*-import time
import random
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from lxml import etreefrom sns_spider.config.settings import *# 使用谷歌驱动
class SeleniumChrome(object):def __init__(self):options = webdriver.ChromeOptions()options.add_argument('lang=en')self.driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH,chrome_options=options,desired_capabilities=None)self.driver.maximize_window()self.driver.set_page_load_timeout(60)self.driver.set_script_timeout(60)self.currentUrl = Noneself.pageSource = Nonedef getDetail(self, url):"""获取详情页源码"""self.driver.get(url)self.driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')resp = self.driver.page_sourcehtml = etree.HTML(resp)return htmldef close(self):"""关闭chromedirver驱动"""self.driver.quit()class RegisterInsAccount(object):"""模拟登录注册ins账号"""def __init__(self):self.url = "https://www.instagram.com/accounts/emailsignup/"self.sele = SeleniumChrome()def start_requets(self, number, fullname, username, password):driver = self.sele.driverdriver.get(self.url)time.sleep(3)driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')# 手机号elem_number = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//input[@name="emailOrPhone"]')))if elem_number: elem_number.send_keys(number)time.sleep(1)# 账号名称elem_fullname = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//input[@name="fullName"]')))if elem_fullname: elem_fullname.send_keys(fullname)time.sleep(1)# 用户名称elem_username = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//input[@name="username"]')))if elem_username: elem_username.send_keys(username)time.sleep(1)# 密码elem_password = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//input[@name="password"]')))if elem_password: elem_password.send_keys(password)time.sleep(1)# 提交按钮elem_submit = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//button[text()="Sign up"]')))if elem_submit: elem_submit.click()time.sleep(5)# 获取月month = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//select[@title="Month:"]')))s1 = Select(month)s1.select_by_index(random.choice(range(1, 13)))time.sleep(1.5)# 获取日day = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//select[@title="Day:"]')))s2 = Select(day)s2.select_by_index(random.choice(range(1, 28)))time.sleep(1.5)# 获取年year = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//select[@title="Year:"]')))s3 = Select(year)s3.select_by_index(random.choice(range(17, 27)))# 点击下一步elem_xiayibu = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//button[text()="Next"]')))if elem_xiayibu: elem_xiayibu.click()time.sleep(5)# 输入验证码elem_code = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//input[@name="confirmationCode"]')))if elem_code:code = input("请输入验证码:")if code == 1:elem_chongshi = driver.find_element_by_xpath('//button[text()="Request New Code"]')if elem_chongshi: elem_chongshi.click()elem_code.send_keys(code)time.sleep(1)# 点击确认elem_queren = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//button[text()="Confirm"]')))if elem_queren: elem_queren.click()time.sleep(10)cookies = driver.get_cookies()cookie = ""for i in cookies:cookie += i['name'] + "=" + i['value'] + "; "if "sessionid" in cookie:login_account = {"numbers": number.lstrip("+86"),"user": fullname,"cookies": cookie.strip('; ')}print(login_account)driver.quit()else:login_account = {"numbers": number.lstrip("+86"),"user": fullname,}print(login_account)print("没有获取到sessionId,重新获取*************")def run(self):try:number = "+86" + input("请输入电话号码:")fullname = input("请输入全称:")username = fullnamepassword = fullname + "midu"self.start_requets(number, fullname, username, password)except Exception as e:print(e)if __name__ == '__main__':obj = RegisterInsAccount()obj.run()


http://www.ppmy.cn/news/432693.html

相关文章

win10系统安装Oracle 11g时遇到[INS-13001]环境不满足最低要求解决办法

遇到的问题: 在win10环境下安装Oracle 11g时,在安装点击setup.exe之后,出现了:[INS-13001]环境不满足最低要求 原因: 版本注册的问题,默认Oracle 11没有添加win10的注册信息,所以要将win10的注…

INS-13001环境不满足最低要求

安装oracle11g时遇到INS-13001环境不满足最低要求 原因:版本注册问题,默认oracle 11没有添加win10的注册信息,所以要在win10的注册信息添加到oracle的配置文件里 解决方法: 1 找到你解压后的文件,点击打开database文件…

[INS-32025] 所选安装与指定 Oracle 主目录中已安装的软件冲突

今天 重装oracle的时候遇见了这个问题,试过好多种方法, 最后我的解决方法是:不要在安装包所在的路径安装oracle, 也就是安装路径和安装包不能再一个路径下。

原生js验证简洁美观注册登录页面

本文转载自&#xff1a; https://www.cnblogs.com/storm-chou/p/6189489.html 作者&#xff1a;storm-chou 转载请注明该声明。 序 一个以js验证表单的简洁的注册登录页面&#xff0c;不多说直接上图 效果 主要文件 完整代码 1 sign_up.html 注册表单 <!DOCTYPE html>…

html登录注册页面本地验证,原生js验证简洁注册登录页面

序 一个以js验证表单的简洁的注册登录页面,不多说直接上图 效果 主要文件 完整代码 1 sign_up.html 注册表单sign-up 创建账户 已经拥有账户? 登录 2 log_in.html 登录表单log-in

安装oracle11g 遇到INS-13001环境不满足最低要求 解决方法

2019独角兽企业重金招聘Python工程师标准>>> 图文课TinyMind论坛APP问答商城VIP会员活动招聘ITeyeGitChat 写博客发Chat传资源登录注册 华大竟出了一个炒股女高手&#xff0c;年仅27岁&#xff01;逸婕贸易 燨燚 RAC报错&#xff1a;[INS-13013] 目标环境不满足一些…

Office 外接程序 (Add-ins) 的 ExecuteFunction 命令变更

Office Add-ins 长期以来一直支持自定义功能区按钮和菜单&#xff0c;称为插件命令。对于 Word、Excel、PowerPoint 和 Outlook&#xff0c;有两种方式&#xff1a;打开任务窗格的方式和调用 JavaScript 函数的方式。ExecuteFunction 命令即调用 JavaScript 函数的命令&#xf…

重庆思庄oracle技术分享-[INS-13001]环境不满足最低要求

如在win10环境下安装Oracle 11g时&#xff0c;在安装点击setup.exe之后&#xff0c;出现了&#xff1a;[INS-13001]环境不满足最低要求原因&#xff1a;版本注册的问题&#xff0c;默认Oracle 11没有添加win10的注册信息&#xff0c;所以要将win10的注册信息添加到Oracle的配置…