利用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 相关文章推荐
Python 错误和异常小结
Oct 09 Python
Python写的Tkinter程序屏幕居中方法
Mar 10 Python
Python sys.argv用法实例
May 28 Python
分享Python字符串关键点
Dec 13 Python
分析python请求数据
Aug 19 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
Python socket非阻塞模块应用示例
Sep 12 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
Feb 17 Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 Python
Python绘图之柱形图绘制详解
Jul 28 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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
初步讲解Python中的元组概念
2015/05/21 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
详解Django CAS 解决方案
2019/10/30 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
Ray-Ban雷朋太阳眼镜英国官网:Ray-Ban UK
2019/11/23 全球购物
教育技术职业规划范文
2014/03/04 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
社区活动总结
2015/02/04 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
聘任书范文大全
2015/09/21 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
python必学知识之文件操作(建议收藏)
2021/05/30 Python
springboot如何初始化执行sql语句
2021/06/22 Java/Android