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

时间:2022-10-22 16:26:48

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

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

登录方式做出分析:

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

第二,有csrf_token,

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

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

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

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

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

代码:

?
1
2
3
4
5
6
7
8
9
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)

#结果::

?
1
2
3
4
5
{'logged_in': 'no', '_gh_sess': 'vdfwa2hjwjfmb1hpruflrdvhumc3mxg1tk02tdhsunhdmerungpyt2y4stlqz2xcv1lczefhk21wdfr1bkpgyuv0wejzcdeydwfzcm93
avc4nk91q2jicmtrv0niq0lrswm4afhrsvfybctcczbwdnhvn0yysvjjnufpqnhytznurkjwndjzuwxucek2m2jkm3vsmddxvhnoy1htqkthckjqzdjyuvr2rzbnuku3vnltrvf2u
m1admu3c3yzsglyvnvzvm0ycna1euhet1jrvwnln0psbndkwjljmgttng5urwj1eu8rqjzxnemxvethcgvobdfby2gvc2zzwxcvwwzab29wqwjyu0l6cmzscwhbqulzyta3dtrtb
3l1s0hdyythy2v1suhewlzvvlzoswzptzbjnmlidff2dzi2bwgtltjon1lqbm5jwutsymtivem1cljpake9pq%3d%3d--897dbc36c123940c8eae5d86f276dead8318fd6c'}
prz0wapebu5shksgcesn0fijwou9alw8epusxlqgcw1ezirl0vbskvktyqie8vhxhph2h/uzgav6xx+yjtgova==

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

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

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

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

代码::

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

?
1
2
3
4
5
6
7
8
9
10
11
12
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 就可以

#完整代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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(),
)

查看个人详情页

?
1
2
3
4
5
6
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