Python爬虫使用脚本登录Github并查看信息
作者:张丶耀庆 时间:2022-05-02 13:09:28
前言分析目标网站的登录方式
目标地址: 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并查看信息网站的支持!
来源:http://www.cnblogs.com/littlesky1124/p/9315617.html
标签:python爬虫,登录
0
投稿
猜你喜欢
JavaScript实现的鼠标跟随特效示例【2则实例】
2024-04-17 09:50:27
一文带你了解Go语言中的指针和结构体
2024-04-25 15:26:20
从零使用TypeScript开发项目打包发布到npm
2024-05-02 16:16:28
vue实现选项卡及选项卡切换效果
2024-05-08 09:33:17
Oracle 数据库操作技巧集
2010-07-26 12:49:00
mysql存数组的实例代码和方法
2024-01-23 22:45:21
Python 常用模块 re 使用方法详解
2021-02-23 13:10:19
Python循环实现n的全排列功能
2022-08-15 21:04:08
python 插入日期数据到Oracle实例
2022-09-29 23:51:59
Python闭包的使用方法
2022-11-27 07:45:07
python reverse反转部分数组的实例
2021-09-16 05:30:11
Javascript中作用域的详细介绍
2024-04-18 10:02:09
asp ajax跨域提交数据
2011-04-11 10:56:00
Python使用Matplotlib实现Logos设计代码
2021-02-04 19:18:34
Python urllib库的使用指南详解
2021-07-08 20:50:57
Python用正则表达式实现爬取古诗文网站信息
2021-08-30 07:12:51
用 AjaxTags 简化 Ajax 开发
2007-11-27 00:00:00
一步步教你在Navicat上如何停止正在运行的MYSQL语句
2024-01-21 06:17:01
python函数默认参数使用避坑指南
2023-06-19 13:37:50
关于数据库中保留小数位的问题
2024-01-13 13:34:45