利用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的Zato发送AMQP消息的教程
Apr 16 Python
Python实现读取json文件到excel表
Nov 18 Python
简单实现python聊天程序
Apr 01 Python
python实现支付宝当面付(扫码支付)功能
May 30 Python
python用户评论标签匹配的解决方法
May 31 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 Python
python导入模块交叉引用的方法
Jan 19 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
django项目中使用手机号登录的实例代码
Aug 15 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 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中使用XML
2006/10/09 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
如何使用angularJs
2017/05/08 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
优秀导游先进事迹材料
2014/01/25 职场文书
高三复习计划
2015/01/19 职场文书
淮海战役观后感
2015/06/11 职场文书
董事长致辞
2015/07/29 职场文书
php 原生分页
2021/04/01 PHP
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis
Python使用openpyxl模块处理Excel文件
2022/06/05 Python