抓取云悉接口
前言:
前段时间一直想抓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://jiushill.github.io/posts/10d57181.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。