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

yipeiwu_com5年前Python爬虫

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

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

登录方式做出分析:

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

第二,有csrf_token,

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

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

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

代码:

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方式提交用户名密码

代码::

这个代码接着上面的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爬虫之打包生成exe文件

零基础写python爬虫之打包生成exe文件

1.下载pyinstaller并解压(可以去官网下载最新版): https://github.com/pyinstaller/pyinstaller/ 2.下载pywin32并安装(注意...

Python 利用scrapy爬虫通过短短50行代码下载整站短视频

Python 利用scrapy爬虫通过短短50行代码下载整站短视频

近日,有朋友向我求助一件小事儿,他在一个短视频app上看到一个好玩儿的段子,想下载下来,可死活找不到下载的方法。这忙我得帮,少不得就抓包分析了一下这个app,找到了视频的下载链接,帮他解...

Python+PyQt5实现美剧爬虫可视工具的方法

Python+PyQt5实现美剧爬虫可视工具的方法

美剧《权力的游戏》终于要开播最后一季了,作为马丁老爷子的忠实粉丝,为了能够看得懂第八季复杂庞大的剧情架构,本人想着将前几季再稳固一下,所以就上美剧天堂下载来看,可是每次都上去下载太麻烦了...

Python使用scrapy爬取阳光热线问政平台过程解析

目的:爬取阳光热线问政平台问题反映每个帖子里面的标题、内容、编号和帖子url CrawlSpider版流程如下: 创建爬虫项目dongguang scrapy startproje...

python爬虫爬取笔趣网小说网站过程图解

python爬虫爬取笔趣网小说网站过程图解

首先:文章用到的解析库介绍 BeautifulSoup: Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。 它是一个工具箱,通过解析...