调用新浪短地址转换api的一个测试
import base64
import requests url="http://www.~~~~.com" headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
}
params={} def convert_to_bs64(url):
bs64_url=base64.b64encode(url.encode("utf-8"))
bs64_url=str(bs64_url,"utf-8")
#print(bs64_url)
return bs64_url def get_short_url():
#获得使用转化功能需要的cookies
r=requests.get(url="http://dwz.wailian.work/",headers=headers)
cookies=requests.utils.dict_from_cookiejar(r.cookies) #调用api获得返回
bs64_url=convert_to_bs64(url)
params.update({"from":"w","url":bs64_url,"site":"1t.click"})
res=requests.get(url="http://dwz.wailian.work/api.php",\
headers=headers,cookies=cookies,params=params)
#从返回中提取短地址
print(res.text) def main():
get_short_url() if __name__=="__main__":
main() #>>str={"result":"ok","data":{"short_url":"http:\/\/1t.click\/s6v","title":"\u641c\u72d7\u5ba0\u7269\u5929\u4e0b - \u7231\u5ba0\u7269,\u7231\u751f\u6d3b"}}
上面代码是长转短,短转长也是一样,起码,在有cookies的情况下,浏览器输入http://dwz.wailian.work/api.php?url=aHR0cDovL3QuY24vRTlFV3J1SA==&action=restore也是可以返回结果的
ps:这个可真是花了我一点时间呢。使用requests函数,参数headers要填写cookies,这个cookies用前一个页面的cookies也是可以(我最早以为只要检查登录状态才有cookies,没想到...)
另外一个是parmas字典,要设置一个url键-值,这个值是从原始要查询的url转换过来的,我开始还以为是个md5,研究了一波md5加密解密之后,发现原来是个base64
另外,网上有关于新浪长地址转短地址算法,大概是md5之后再进行一些数值运算,但那算法是怎么来的,并不明白。而从短地址转长地址,用算法逆推就几乎是不可能的了
调用新浪短地址转换api的一个测试的更多相关文章
- 新浪短网址最新api接口
1,雨林短网址 网站链接:http://yldwz.cn 雨林短网址采用新浪.腾讯官方API接口,强大的多功能API,简单易用,质量高官 网提供强技术支持,99.9% SLA服务稳定安全可靠的校验机制 ...
- Python如何调用新浪api接口的问题
前言:这些天在研究如何调用新浪开放平台的api分析新浪微博用户的数据 成果:成功调用了新浪api获取了用户的一些个人信息和无数条公共微博 不足:新浪开放平台访问有限制,返回的数据着实有限,不足以分析问 ...
- 新浪ip地址转换接口
通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库.2)根据第三方提供的API查询获取地区信息. 第一种方法,参见文本<通过纯真IP数据库获取IP地 ...
- php调用新浪API生成t.cn短网址链接
新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接. API: http://api.t.sina.com.cn/short_url/shorten.json ( ...
- 新浪短链接API接口示例
<?php /** * URL地址长短切换,由sina新浪短链接API生成 * User: chenqt * Date: 2016/8/23 * Time: 18:45 */ class Url ...
- 使用JAVA实现模拟登陆并发送新浪微博(非调用新浪API)
没有调用新浪的API,在程序中加入自己的帐号和密码就能发送微博,代码完全在后台运行,不用打开浏览器. 用了HtmlUnit这个库来模拟登录还有发送微博. 先上效果图: 这个是刚登陆上获取第一页的信息. ...
- PHP调用新浪API 生成短链接
我们经常收到类似于这样的短信(如下图),发现其中的链接并不是常规的网址链接,而是个短小精悍的短链接,产品中经常需要这样的需求,如果在给用户下发的短信中是一个很长的连接,用户体验肯定很差,因此我们需要实 ...
- Sina 新浪Ip归属地Api 很好用的,使用get请求
前言 这几天做了一个客服管理系统,需要根据游客的Ip获取他的归属地,刚开始使用了,www.ip138.com 抓取ip归属地,用这还可以,但是不显示国家:于是是找了这个新浪的Api,很不错啊 用法 1 ...
- 新浪 ip 地址库
API地址:http://int.dpool.sina.com.cn/iplookup/iplookup.php 帮助 1 2 3 4 5 6 7 8 function get_location($i ...
随机推荐
- 077-PHP数组删除元素
<?php $arr=array(98,'hello',67,'A',85,NULL); //定义一个数组 echo '删除元素之前数组中的元素个数为:'.count($arr); //输出数组 ...
- 超级简单 一分钟实现react-native屏幕适配
今天因为react-native的style只能给width和height设置数字 没有react上的vw和vh 因为之前经常用vh vw 感觉不适应 找到了一个新的方法 使用Demension模块 ...
- [CSS]水平垂直居中方案
简单总结一下常用的水平垂直居中方案 直接在父级元素设置 text-align 和 line-height ,针对未浮动的行内元素 <div class="box"> & ...
- M: Mysterious Conch 字符串哈希
Problem Description小明有一个神奇的海螺,你对海螺说一段字符串,海螺就会返回一个单词,有字符串里面的所有字符组成如告诉海螺“lloeh”海螺则会告诉你“hello”如果有多个单词对应 ...
- T_SQL 获取系统当前时间与明天时间的两种格式
--获取系统明天的时间 select CONVERT(nvarchar(20),dateadd(d,1,getdate()),120) 2017-01-21 15:04:10 sele ...
- 第六篇 ORM 操作大全
阅读目录(Content) 一 对象关系映射ORM概念 二 Django连接MySQL 三modles.py创建表 常用字段 字段合集 字段参数 DateField和DateTimeField 四.关 ...
- Oracle:文字与字符串不匹配
执行方法的时候,方法在本地跑是正常,到测试环境报错,错误代码为 ADD_MONTHS(to_date(nvl(T2.EXEC_TIME,t1.DISTRIBUTE_TIME+1),'yyyy-mm-d ...
- 【LeetCode】两个数相加
[问题]给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. [实例] 输入: ...
- 77.Q表达式详解
Q表达式可以包裹查询条件,可以在多个条件之间进行操作:与或非等.Q表达式一般会放在filter()中进行使用,F表达式一般是放在update()中进行使用. 定义模型的models.py文件中,示例代 ...
- 《新标准C++程序设计》1.7-1.10(C++学习笔记2)
1.内联函数(inline关键字) eg.inline int Max(int a,int b) { if(a>b) return a; return b; } 当编译器处理调用内联函数的语句时 ...