Python爬虫使用脚本登录Github并查看信息


Posted in Python onJuly 16, 2018

前言分析目标网站的登录方式

目标地址: https://github.com/login   

登录方式做出分析:

第一,用form表单方式提交信息,

第二,有csrf_token,

第三 ,是以post请求发送用户名和密码时,需要第一次get请求的cookie

第四,登录成功以后,请求其他页面是只需要带第一次登录成功以后返回的cookie就可以。

以get发送的请求获取我们想要的token和cookie

Python爬虫使用脚本登录Github并查看信息

Python爬虫使用脚本登录Github并查看信息

代码:

import requests  
from bs4 import BeautifulSoup
r1 = requests.get('https://github.com/login')
soup = BeautifulSoup(r1.text,features='lxml') #生成soup 对象
s1 = soup.find(name='input',attrs={'name':'authenticity_token'}).get('value') 
#查到我们要的token
r1_cookies = r1.cookies.get_dict() # 下次提交用户名时用的cookie
# print(r1_cookies)  
# print(s1)

#结果::

{'logged_in': 'no', '_gh_sess': 'VDFWa2hJWjFMb1hpRUFLRDVhUmc3MXg1Tk02TDhsUnhDMERuNGpyT2Y4STlQZ2xCV1lCZEFhK21wdFR1bkpGYUV0WEJzcDEydWFzcm93
aVc4Nk91Q2JicmtRV0NIQ0lRSWM4aFhrSVFYbCtCczBwdnhVN0YySVJJNUFpQnhyTzNuRkJwNDJZUWxUcEk2M2JkM3VSMDdXVHNOY1htQkthckJQZDJyUVR2RzBNUkU3VnltRVF2U
m1admU3c3YzSGlyVnVZVm0ycnA1eUhET1JRVWNLN0pSbndKWjljMGttNG5URWJ1eU8rQjZXNEMxVEthcGVObDFBY2gvc2ZzWXcvWWZab29wQWJyU0l6cmZscWhBQUlzYTA3dTRtb
3l1S0hDYytHY2V1SUhEWlZvVlZoSWZpTzBjNmlidFF2dzI2bWgtLTJON1lqbm5jWUtSYmtiVEM1clJPakE9PQ%3D%3D--897dbc36c123940c8eae5d86f276dead8318fd6c'}
pRz0wapEbu5shksGCeSN0FijWoU9ALw8EPUsXlqgcw1Ezirl0VbSKvkTYqIe8VhxhPH2H/uzGaV6XX+yjTGoVA==

获取这两个值就可以,进行下一步发送登录请求:

第二步post方式提交用户名密码

Python爬虫使用脚本登录Github并查看信息

Python爬虫使用脚本登录Github并查看信息

代码::

这个代码接着上面的get请求,只是post请求的部分,

r2 = requests.post(
  'https://github.com/session',
  data ={
    'commit':'Sign in',
    'utf8':'✓',
    'authenticity_token':s1,
    'login':'541756569@qq.com',
    'password':'用户名密码'         # 填上正确的用户名即可
  },
  cookies = r1.cookies.get_dict(),    # 这里需要第一次的cookie
)
print(r2.cookies.get_dict())   # 这个是成功以后的cookie

成功以后就返回登录页面的信息。

基于post登录成功后查看个人详情页。

这里只需要带着登录成功以后的cookie 就可以

#完整代码

import requests
from bs4 import BeautifulSoup
r1 = requests.get('https://github.com/login')
soup = BeautifulSoup(r1.text,features='lxml')
s1 = soup.find(name='input',attrs={'name':'authenticity_token'}).get('value')
r1_cookies = r1.cookies.get_dict()
print(r1_cookies)
print(s1)
r2 = requests.post(
  'https://github.com/session',
  data ={
    'commit':'Sign in',
    'utf8':'✓',
    'authenticity_token':s1,
    'login':'541756569@qq.com',
    'password':'密码'
  },
  cookies = r1.cookies.get_dict(),
)

查看个人详情页

print(r2.cookies.get_dict())
 r3 = requests.get(
    'https://github.com/13131052183/product',  #查看个人的详情页
    cookies = r2.cookies.get_dict()
 )
 print(r3.text)

总结

以上所述是小编给大家介绍的Python爬虫使用脚本登录Github并查看信息,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python Deque 模块使用详解
Jul 04 Python
Python中的数学运算操作符使用进阶
Jun 20 Python
利用python批量检查网站的可用性
Sep 09 Python
基于python实现简单日历
Jul 28 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
python迭代器常见用法实例分析
Nov 22 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
Python切片列表字符串如何实现切换
Aug 06 Python
5 分钟读懂Python 中的 Hook 钩子函数
Dec 09 Python
如何用python绘制雷达图
Apr 24 Python
django认证系统实现自定义权限管理的方法
Jul 16 #Python
Sanic框架路由用法实例分析
Jul 16 #Python
Sanic框架安装与简单入门示例
Jul 16 #Python
python 除法保留两位小数点的方法
Jul 16 #Python
Python自定义装饰器原理与用法实例分析
Jul 16 #Python
python 正确保留多位小数的实例
Jul 16 #Python
浅谈Python里面小数点精度的控制
Jul 16 #Python
You might like
PHP仿盗链代码
2012/06/03 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
图像替换新技术 状态域方法
2010/01/28 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Python中文件的读取和写入操作
2018/04/27 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python字典排序的方法
2019/10/12 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
工程管理造价应届生求职信
2013/11/13 职场文书
总会计师岗位职责
2014/02/19 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
六一儿童节开幕词
2015/01/29 职场文书
岁月神偷观后感
2015/06/11 职场文书
运动会宣传稿100字
2015/07/23 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
python获取字符串中的email
2022/03/31 Python