爬虫-域名抢注(whois.ai)

boss要求写一个爬虫程序,实现域名抢注功能。

开始爬坑。。。。

需要注意的点:

1、这个网站比较简单,所以只需要分析form表单提交的信息。

2、登陆此网站需要post一个标识(需要提前获得)

3、requests包提供的session()函数可以直接向目标链接发送post请求

4、BeautifulSoup可以格式化代码,方便读取标签的值。

5、https会拒绝post请求,所以要加verify=false

6、 requests.packages.urllib3.disable_warnings()#不提示错误信息

7、发送post请求时,要发送headers,让服务器认为该请求是通过浏览器发送的

# -*- coding: utf-8 -*-

import ssl
import requests
import urllib.request
import time
import datetime
from bs4 import BeautifulSoup

session = requests.session()#session 全局变量

agent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT) Chrome/51.0.2704.103 Safari/537.36"#模拟浏览器
headers = {
    'User-Agent': agent
}

def getHtml(url):#获得网页源代码
    ssl._create_default_https_context = ssl._create_unverified_context
    page = urllib.request.urlopen(url)
    html = page.read().decode('utf-8')
    return html


def pay(h,t):#支付函数
    check_data = {
        'pay_balance': 'register/renew',
        'domains': [t]
    }
    r1 = session.post('https://whois.ai/cgi-bin/batch.py', data=check_data, headers=h, verify=False)
    print(r1.text)

def login(s,h):#登录函数

    login_data = {
        'time': s,
        'login': '账号',
        'password': '密码'
    }
    requests.packages.urllib3.disable_warnings()#不提示错误信息
    r=session.post('https://whois.ai/cgi-bin/main.py', data=login_data,headers=h,verify=False)#登录(https会拒绝post请求,所以要加verify)
    print('登陆成功')

def register(h,t):#注册函数
    register_data = {
        'domain': t,
        'key1a' : 'not_paid',
        'key2'  : t,
        'key4j' : '手机号',
        'key4l' : '邮箱',
        'key7a' : 'baidu.com',
        'key8a' : '163.com'
    }
    check_data = {
        'pay_balance': 'register/renew',
        'domains': [t]
    }
    r2 = session.post('https://whois.ai/cgi-bin/form.py', data=register_data, headers=h, verify=False)#注册
    html2 = BeautifulSoup(r2.text, 'html.parser')
    txt = html2.findAll('font', {'color': 'green'})
    if txt:
        return 1
    else:
        return 0


html = getHtml("https://whois.ai/cgi-bin/main.py")
html=BeautifulSoup(html,'html.parser')
str = html.input['value']#获得登录标示

login(str,headers)#登录

list = ['','']#需要操作的域名列表


for link in list:#循环注册
    value = 0
    value = register(headers,link)
    if value == 1:
        print('注册成功')
        pay(headers,link)#注册成功  进行付款
    else:
        print('注册失败')



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值