利用Python模拟登录pastebin.com的实现方法


Posted in Python onJuly 12, 2019

任务

在https://pastebin.com网站注册一个账号,利用python实现用户的自动登录和创建paste。该任务需要分成如下两步利用python实现:

1.账号的自动登录

2.paste的自动创建

模拟账号登录

模拟登录,需要知道登录的URL是什么,那么登录URL怎么去看呢。

进入https://pastebin.com/之后,发现是以访客的身份进入的,点击身份图像的下拉中的LOGIN,进入登录页面,打开Chrome开发工具,选择Network,勾选Preserve log:

利用Python模拟登录pastebin.com的实现方法

输入用户名和密码,登录进去后,如下图:

 利用Python模拟登录pastebin.com的实现方法利用Python模拟登录pastebin.com的实现方法

这样就找到了需要提交的请求是什么,包括url,请求方法,提交的数据。POST请求是以什么格式提交的数据呢,在Request Header头部可以找到"content-type": "application/x-www-form-urlencoded",这个需要注意,因为经常遇到的还有一种提交形式叫"application/json"。

在用requests post提交请求的时候,如果是form表单形式传送,则将数据传入data参数,如果是以json格式传送,则需要将数据传入json参数。

登录之后,点击API菜单,可以从页面中 获取一个api_dev_key,后面实现自动创建paste的时候需要用到。

利用Python模拟登录pastebin.com的实现方法

自动登录和获取api_dev_key的代码

import requests
from lxml import etree
# 登录 https://pastebin.com/
login_url = "https://pastebin.com/login"
username = "kuang123321"
password = "xxxxxx"
api_dev_key = "4f45a996aa78079d8f7d14f104c45893"
session = requests.Session()
form_data = {
  "submit_hidden": "submit_hidden",
  "user_name": username,
  "user_password": password,
  "submit": "Login"
}
headers = {"content-type": "application/x-www-form-urlencoded"}
res = session.post(login_url, data=form_data, headers=headers)
print(res.status_code, res.url)
# 获取 api_dev_key
api_url = "https://pastebin.com/api"
text = 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)
else:
  raise Exception("cannot find api_dev_key")

总结

以上所述是小编给大家介绍的利用Python模拟登录pastebin.com的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
Python中的引用和拷贝浅析
Nov 22 Python
Python导入txt数据到mysql的方法
Apr 08 Python
浅析Python中的序列化存储的方法
Apr 28 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
Python之ReportLab绘制条形码和二维码的实例
Jan 15 Python
Django+Xadmin构建项目的方法步骤
Mar 06 Python
python中open函数的基本用法示例
Sep 07 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
Python中json.dumps()函数的使用解析
May 17 Python
django之使用celery-把耗时程序放到celery里面执行的方法
Jul 12 #Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 #Python
Django中celery执行任务结果的保存方法
Jul 12 #Python
python hough变换检测直线的实现方法
Jul 12 #Python
Python实现的远程文件自动打包并下载功能示例
Jul 12 #Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 #Python
在交互式环境中执行Python程序过程详解
Jul 12 #Python
You might like
十天学会php之第七天
2006/10/09 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
2014/07/01 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
2014/01/11 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
Django自带的用户验证系统实现
2020/12/18 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
临床医学专业个人的自我评价
2013/09/27 职场文书
和谐社区口号
2014/06/19 职场文书
单位租房协议书样本
2014/10/30 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
2015年档案室工作总结
2015/05/23 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
pandas中关于apply+lambda的应用
2022/02/28 Python
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技