抓取云悉接口

  1. 前言:
    1. 正文:

前言:

前段时间一直想抓web指纹,发现手动抓的残缺不全还不准确。后来想抓云悉
指纹没有做。现在正好有时间爬了。

正文:

我们首先来抓包,分析一下URL
云悉:http://www.yunsee.cn/

有type,url,string,_token。这几个参数

通查看网页源代码可以得出,string的参数是固定的。
而_token是可以从网页源代码获取的。
url是你自己的
type是cms查询的类型,还有一个查whois的

然后可以得出思路:

1.利用正则的search搜索功能抓取_token
2.过滤掉_token一些无关紧要的符合
3.组成参数
4.经过循环并且加入字典
5.发送post请求并带上参数
6.解刨json数据

代码:

import requests
import threading
import re

def zhuaq(urls):
user=input('url:')
data={}
data2={}
headers={'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'}
url2='http://www.yunsee.cn/home/getInfo'
reqts=requests.get(url=urls,headers=headers)
search=re.search('_token:.*',reqts.text)
token='{}'.format(search.group()).replace('}','').replace(',','').replace('"','').replace(':','').replace('_token','').strip()
datas='type=webcms&url={}&_token={}'.format(user,token)
datas2 = 'type=webinfo&url={}&_token={}'.format(user, token)
for v in datas.split('&'):
    key,value=v.split('=',1)
    data[key]=value

reqvs=requests.post(url=url2,headers=headers,data=data)
jsons=reqvs.json()

for v in datas2.split('&'):
    key, value = v.split('=', 1)
    data2[key] = value

reqvs2 = requests.post(url=url2, headers=headers, data=data2)
json2=reqvs2.json()

print('url:{}'.format(user))
print('whois_dns:{}'.format(json2['res']['whois_dns']))
print('icp_name:{}'.format(json2['res']['icp_name']))
print('ip:{}'.format(json2['res']['ip']))
print('language:{}'.format(json2['res']['language']))
print('whois_mail:{}'.format(json2['res']['whois_mail']))
print('os:{}'.format(json2['res']['os']))
print('cdn:{}'.format(json2['res']['cdn']))
print('server:{}'.format(json2['res']['server']))
print('record_id:{}'.format(json2['res']['record_id']))
print('whois_isp:{}'.format(json2['res']['whois_isp']))
#print('LLC:{}'.format(json2['res']['LLC']))
print('whois_date:{}'.format(json2['res']['whois_date']))
print('create:{}'.format(json2['res']['create']))
print('icp_id:{}'.format(json2['res']['icp_id']))
print('whois_name:{}'.format(json2['res']['whois_name']))
print('idc:{}'.format(json2['res']['idc']))

print('cms:{}'.format(jsons['mess']))
for reqs in jsons['res'][0:]:
    print('desc:{} name:{}'.format(reqs['desc'],reqs['name']))
def run():
    url = 'http://www.yunsee.cn/'
    t=threading.Thread(target=zhuaq,args=(url,))
    t.start()
if __name__ == '__main__':
    run()

测试效果图:

转载请声明来自422926799.github.io


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:抓取云悉接口

本文作者:九世

发布时间:2018-08-12, 19:55:45

最后更新:2019-04-19, 20:36:16

原始链接:http://422926799.github.io/posts/10d57181.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录