利用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实现的计数排序算法示例
Nov 29 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
详解Tensorflow数据读取有三种方式(next_batch)
Feb 01 Python
python3使用smtplib实现发送邮件功能
May 22 Python
python 用正则表达式筛选文本信息的实例
Jun 05 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
python 实现方阵的对角线遍历示例
Nov 29 Python
Python守护进程实现过程详解
Feb 10 Python
Django admin 实现search_fields精确查询实例
Mar 30 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
Python二元算术运算常用方法解析
Sep 15 Python
Python自动化测试基础必备知识点总结
Feb 07 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
15种PHP Encoder的比较
2007/04/17 PHP
PHP技术开发技巧分享
2010/03/23 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
Javascript玩转继承(一)
2014/05/08 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python字典操作实例详解
2017/11/16 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
python+requests接口自动化框架的实现
2020/08/31 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
轻化专业学生实习自我鉴定
2013/09/20 职场文书
经典优秀个人求职自荐信格式
2013/09/25 职场文书
村级个人对照检查材料
2014/08/22 职场文书
河童之夏观后感
2015/06/11 职场文书
教师节联欢会主持词
2015/07/04 职场文书
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL