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

作者:张丶耀庆 时间:2022-05-02 13:09:28 

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

目标地址: 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并查看信息网站的支持!

来源:http://www.cnblogs.com/littlesky1124/p/9315617.html

标签:python爬虫,登录
0
投稿

猜你喜欢

  • Discuz!NT 论坛整合ASP程序论坛教程

    2011-03-31 11:09:00
  • PHP学习记录之面向对象(Object-oriented programming,OOP)基础【类、对象、继承等】

    2023-11-21 07:25:59
  • IE8 的 JSON 解析 Bug

    2009-05-22 12:36:00
  • Python实现个人微信号自动监控告警的示例

    2023-02-04 20:03:03
  • 基于Python编写一个简单的服务注册发现服务器

    2022-06-11 20:23:31
  • python框架Django实战商城项目之工程搭建过程图文详解

    2022-12-16 16:25:57
  • 浏览器tab的设计

    2008-08-11 13:03:00
  • PHP禁止页面缓存的代码

    2023-07-04 05:35:02
  • python网络应用开发知识点浅析

    2021-07-15 00:09:48
  • Python语法快速入门指南

    2021-10-18 11:36:00
  • 简单的XML操作:XML文件创建

    2008-04-25 10:31:00
  • Oracle中获取执行计划的几种方法分析

    2023-07-17 15:18:31
  • python中绑定方法与非绑定方法的实现示例

    2021-01-03 03:59:13
  • Python数据结构之二叉排序树的定义、查找、插入、构造、删除

    2022-03-03 08:19:51
  • SQL中JOIN和UNION区别、用法及示例介绍

    2012-08-21 10:47:22
  • Django模板过滤器和继承示例详解

    2023-10-25 16:52:56
  • Dreamweaver实现flash透明背景

    2008-05-04 09:35:00
  • Frontpage中网页字体的美化研究

    2008-03-10 12:13:00
  • 仿迅雷焦点广告效果(JQuery版)

    2009-08-03 14:18:00
  • 用Dreamweaver设计自动关闭的网页

    2010-09-02 12:29:00
  • asp之家 网络编程 m.aspxhome.com