在上一篇文章中,已经实现了模拟pastebin.com的账号登录,并且获取了api_dev_key,这一篇文章主要讲一下调用API创建paste

登录之后,进入API页面,发现网站已经提供了几个API接口供调用

在创建paste之前,需要创建一个api_user_key,将得到的api_user_key作为创建paste API的提交数据。

这里给出实现整个任务的代码:

import requests
from lxml import etreeclass PasteBin(object):def __init__(self, username, password):self.username = usernameself.password = passworddef login(self):login_url = "https://pastebin.com/login"self.session = requests.Session()form_data = {"submit_hidden": "submit_hidden","user_name": self.username,"user_password": self.password,"submit": "Login"}headers = {"content-type": "application/x-www-form-urlencoded"}res = self.session.post(login_url, data=form_data, headers=headers)if res.status_code != 200:raise Exception("login fail")# 获取api_dev_keyself.api_dev_key = self.get_api_dev_key()def get_api_dev_key(self):api_url = "https://pastebin.com/api"text = self.session.get(api_url).content.decode("utf-8")html = etree.HTML(text)target_divs = html.xpath('//*[@id="content_left"]/div[9]/div/text()')if target_divs:api_dev_key = target_divs[0]print("api_dev_key:", api_dev_key)else:raise Exception("cannot find api_dev_key")return api_dev_keydef get_api_user_key(self):url = "https://pastebin.com/api/api_login.php"post_data = {"api_dev_key": self.api_dev_key,"api_user_name": self.username,"api_user_password": self.password}r = requests.post(url, data=post_data)if r.status_code != 200:raise Exception("get api_user_key fail")return r.textdef create_paste(self, paste_name, paste_code):api_user_key = self.get_api_user_key()create_paste_url = "https://pastebin.com/api/api_post.php"post_data1 = {"api_dev_key": self.api_dev_key,"api_option": "paste","api_paste_code": paste_code,"api_paste_name": paste_name,"api_user_key": api_user_key,"api_paste_private": 2}r = requests.post(create_paste_url, data=post_data1)if r.status_code != 200:raise Exception("create paste fail")else:print("create paste succeed")if __name__ == "__main__":username = "kuang123321"password = "xxxxxx"p = PasteBin(username, password)p.login()p.create_paste("by code1", "This is a code test")

转载于:https://www.cnblogs.com/legend-123/p/11175613.html

利用Python调用pastebin.com API自动创建paste相关推荐

  1. 转:利用python调用谷歌翻译API

    废话少说 从速卖通抓取了一些评论想进行一些简单的文本分析,但是因为速卖通是一个跨境电商平台,上边的评论基本都是小语种,对,小语种,俄语,法语...英语还可以勉强应付一下,但是其他真的是一个字母都不认识 ...

  2. 利用Python调用ECMWF欧洲中心API批量下载数据

    前段时间由于需要下载ECMWF(欧洲中期天气预报中心)的再分析数据,学习了如何利用Python调用ECMWF欧洲中心API进行批量下载.这种下载ECMWF数据的方法在官网上有非常详细的介绍.我只是对这 ...

  3. Python调用高德地图API实现经纬度换算、地图可视化

    作者 | 糖甜甜甜 出品 | 经管人学数据分析 Python调用高德地图API实现经纬度换算.地图可视化 前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地 ...

  4. python调用百度翻译-Python 调用百度翻译API

    由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...

  5. 你还在为高德地图找不到门牌号等详细地址而烦恼吗?你还在等什么——Python调用高德地图API实现经纬度换算、地图可视化

    Python调用高德地图API实现经纬度换算.地图可视化 前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地图API实现经纬度换算,并且直接在高德地图新推出 ...

  6. python调用高德地图api 可视化_Python调用高德地图API实现经纬度换算、地图可视化...

    前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地图API实现经纬度换算,并且直接在高德地图新推出的轻量级可视化平台上实现一键式地图可视化,这其中需要申请密 ...

  7. python 实现对地图的点击_利用python和百度地图API实现数据地图标注的方法

    如题,先上效果图: 主要分为两大步骤 使用python语句,通过百度地图API,对已知的地名抓取经纬度 使用百度地图API官网的html例程,修改数据部分,实现呈现效果 一.使用python语句,通过 ...

  8. 百度地图AK申请注意+百度地图API生成热力图+调用百度地图API自动获取经纬度和地址

    文章目录 一.百度地图AK密钥申请 二.调用百度地图API生成热力图 三.调用百度地图API自动获取经纬度和地址 一.百度地图AK密钥申请 点击百度地图API控制台,输入登录账户,即可进入,若账户未完 ...

  9. Python调用腾讯API合成语音

    Python调用腾讯API合成语音 腾讯语音合成 Python调用腾讯接口 说明 腾讯语音合成 腾讯AI开放平台中有ai语音合成的接口,其体验网址是https://ai.qq.com/product/ ...

最新文章

  1. Field-Symbols总结
  2. Unity3D重要知识点
  3. 9.11 strace:跟踪进程的系统调用 、ltrace:跟踪进程调用库函数
  4. gcc g++ Linux下动态库_静态库
  5. db2 springboot 整合_[SpringBoot]快速配置多数据源(整合MyBatis)
  6. python信息管理系统实战_最新python入门+进阶+实战课堂教学管理系统开发全套完整版...
  7. 一键刷入twrp_小米/红米手机到手了该怎么解锁和刷 twrp
  8. python有没有类似unity3d_像web一样使用python
  9. PyTorch官方教程中文版
  10. 《Algorithms》—— Dijkstra 的双栈算术表达式求值算法
  11. 【1138】数据结构上机测试2-1:单链表操作A(顺序建表+删除节点)(SDUT)
  12. kubernetes 客户端client-go 使用及常用api
  13. 想要学习C++,到底能从事哪种行业?
  14. python实现对解析之后的DOM进行层次化处理升序输出
  15. Github中文汉化插件—英语渣渣的福利(转)
  16. 【观察】从最佳实践到行业使能,华为HiCampus定义智慧园区
  17. mysql聚簇索引和非聚簇索引的区别_聚簇索引与非聚簇索引的区别
  18. Chuck语言学习笔记——0.前言:我为什么要学习这门语言
  19. 国内邮箱有哪些?vip163微信邮箱登录简单吗?
  20. learn opengl 笔记 1.2

热门文章

  1. vue中实现element的Popper功能
  2. java 本地剪切板_Java中剪切板的操作
  3. 将日志文件从EC2实例自动备份到S3
  4. 我的Android我做主
  5. 通过备案的域名访问,不需要添加端口号(nginx反向代理,直接域名访问)
  6. webscraper爬虫工具详细操作
  7. 2020年最佳的5种社交媒体的数据抓取/网络爬虫工具
  8. Elisp之实现代码自动高亮并跳转(十八)
  9. banana PI 香蕉派 网站上线,
  10. 关于 X-Forward-