利用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中for循环下的索引变量的作用域
Apr 15 Python
Python实现的数据结构与算法之队列详解
Apr 22 Python
使用Python程序抓取新浪在国内的所有IP的教程
May 04 Python
CentOS6.5设置Django开发环境
Oct 13 Python
Python调用微信公众平台接口操作示例
Jul 08 Python
Python3.5 创建文件的简单实例
Apr 26 Python
网红编程语言Python将纳入高考你怎么看?
Jun 07 Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 Python
python抓取京东小米8手机配置信息
Nov 13 Python
Django实现WebSSH操作物理机或虚拟机的方法
Nov 06 Python
Python数组拼接np.concatenate实现过程
Apr 18 Python
python安装第三方库如xlrd的方法
Oct 31 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
新浪SAE搭建PHP项目教程
2015/01/28 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
jQuery实现二维码扫描功能
2017/01/09 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
面包屑导航详解
2017/12/07 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
python实现从ftp服务器下载文件的方法
2015/04/30 Python
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
详解python之heapq模块及排序操作
2019/04/04 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
如何让python的运行速度得到提升
2020/07/08 Python
Python 如何对文件目录操作
2020/07/10 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
文秘个人求职信范文
2014/04/22 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
村道德模范事迹材料
2014/08/28 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
python实现高效的遗传算法
2021/04/07 Python
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers