利用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模拟登录百度贴吧(百度贴吧登录)实例
Dec 18 Python
python类中super()和__init__()的区别
Oct 18 Python
python使用pandas实现数据分割实例代码
Jan 25 Python
python抽取指定url页面的title方法
May 11 Python
Python爬虫基础之XPath语法与lxml库的用法详解
Sep 13 Python
Python饼状图的绘制实例
Jan 15 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
Python+OpenCV实现将图像转换为二进制格式
Jan 09 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
Python 中 Shutil 模块详情
Nov 11 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 Yii框架之表单验证规则大全
2015/11/16 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
jquery模拟alert的弹窗插件
2015/07/31 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
Angular的自定义指令以及实例
2016/12/26 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
JavaScript将数组转换为链表的方法
2020/02/16 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
python3生成随机数实例
2014/10/20 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
用Python开发app后端有优势吗
2020/06/29 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
Linux面试题LINUX系统类
2014/11/19 面试题
初任培训自我鉴定
2013/10/07 职场文书
法律工作求职自荐信
2013/10/31 职场文书
社区健康教育实施方案
2014/03/18 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
redis sentinel监控高可用集群实现的配置步骤
2022/04/01 Redis