我如何访问pastebin上的原始私人粘贴?
2012-11-4 23:12:7
收藏:0
阅读:119
评论:3
我知道如何使用 Pastebin API 生成用户密钥,但如何使用此用户密钥来访问原始私人粘贴内容呢?
我正在使用 Lua。
点赞
用户1894684
我知道回答这个问题有点晚了,但我希望这会对后来的某个人有所帮助。
如果你想要访问原始的私人粘贴,你首先需要列出用户创建的所有粘贴。这是API的一部分,需要用户登录。
使用此API,您可以列出某个用户创建的所有粘贴。 您需要向下面的URL发送一个有效的POST请求来访问数据:
http://pastebin.com/api/api_post.php
您将获得的响应将是XML响应,如下所示:
<paste>
<paste_key>0b42rwhf</paste_key>
<paste_date>1297953260</paste_date>
<paste_title>javascript test</paste_title>
<paste_size>15</paste_size>
<paste_expire_date>1297956860</paste_expire_date>
<paste_private>0</paste_private>
<paste_format_long>JavaScript</paste_format_long>
<paste_format_short>javascript</paste_format_short>
<paste_url>http://pastebin.com/0b42rwhf</paste_url>
<paste_hits>15</paste_hits>
</paste>
一旦您获得了XML,就可以解析XML以获取paste_key和paste_private。您需要检查paste_private的值,因为您只想要私人粘贴。文档中写道:
我们有3个有效值可用于与'api_paste_private'参数一起使用:
0 = 公共 1 = 不列出 2 = 私人(只允许与api_user_key组合使用,因为您必须登录到您的帐户才能访问粘贴)
因此,如果您的粘贴将paste_private设置为2,请获取其paste_key。
一旦你有了paste_key,就可以使用API调用获取原始粘贴。私人粘贴的paste_key无需用户名或密码即可访问。
玩得开心!
2014-06-21 06:58:52
用户7504558
以下是代码示例:
local https = require('ssl.https')
https.TIMEOUT= 15
local private_raw_url="https://pastebin.com/raw/YOURPAGE" -- 更改原始链接
local user_name, user_password = "USER", "PASS" -- 以及用户名和密码
local request_body = "submit_hidden=submit_hidden&user_name=".. user_name .. "&user_password=" .. user_password .. "&submit=Login"
local resp = {}
local res, code, headers, status = https.request ( {
method = 'POST',
url = "https://pastebin.com/login",
headers = {
Host = "pastebin.com",
["Content-Type"] = "application/x-www-form-urlencoded",
["Content-Length"] = string.len(request_body),
Connection = "keep-alive",
},
source = ltn12.source.string(request_body),
sink = ltn12.sink.table(resp),
protocol = "tlsv1",
verify = "none",
verifyext = {"lsec_continue", "lsec_ignore_purpose"},
options = { "all", "no_sslv2", "no_sslv3" }
} )
if not headers['set-cookie']:find('pastebin_user') then
print('登录失败')
return
end
resp={}
local cookie = headers['set-cookie'] or ''
local cookie1, cookie2, cookie3 = cookie:match("(__cfduid=%w+; ).*(PHPSESSID=%w+; ).*(pastebin_user=%w+; )" )
if cookie1 and cookie2 and cookie3 then
cookie = cookie1 .. cookie2 .. cookie3
body, code, headers= https.request{
url = private_raw_url ,
headers = {
--Host = "pastebin.com",
['Cookie'] = cookie,
['Connection'] = 'keep-alive'
},
sink = ltn12.sink.table(resp)
}
if code~=200 then return end
print( table.concat(resp) )
else
print("cookies匹配出错!" )
end
2017-07-25 18:50:14
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
获取原始的粘贴内容不是 Pastebin API 的一部分:
由于私人粘贴只能由创建它们的用户查看,所以我的猜测是它们使用登录 cookie 进行身份验证。在这种情况下,您需要将其随 HTTP 请求一起发送。
关于在 Lua 中实现此功能,(因为您没有说使用哪个库)我建议使用 LuaSocket 中的 HTTP 模块 或者非常好用的 Luvit(http://luvit.io)。