Python 2.7 使用python登录github
我一直在上下寻找如何做到这一点,有许多类似的帖子,但我似乎无法让它发挥作用,所以我发现自己必须明确地问如何做到这一点 我正试图在git hub中收集有关我的软件项目的指标。对于许多这些指标,您可以使用API。然而,最有趣的项目之一是github图形/流量上的唯一访问者和视图计数,不幸的是,这些信息不在github API中。所以,为了得到这个,我尝试登录到我的github帐户,导航到该站点,然后获取号码。下面是我的代码。然而,我似乎无法登录github做任何事情(我的url请求继续显示登录页面,而不是流量页面)。我认为这可能与需要发布的变量有关,但我不确定它们有什么问题Python 2.7 使用python登录github,python-2.7,login,github-pages,Python 2.7,Login,Github Pages,我一直在上下寻找如何做到这一点,有许多类似的帖子,但我似乎无法让它发挥作用,所以我发现自己必须明确地问如何做到这一点 我正试图在git hub中收集有关我的软件项目的指标。对于许多这些指标,您可以使用API。然而,最有趣的项目之一是github图形/流量上的唯一访问者和视图计数,不幸的是,这些信息不在github API中。所以,为了得到这个,我尝试登录到我的github帐户,导航到该站点,然后获取号码。下面是我的代码。然而,我似乎无法登录github做任何事情(我的url请求继续显示登录页面,
from requests import session
from bs4 import BeautifulSoup as bs
USER = 'MYID'
PASSWORD = 'MYPASSWORD'
URL1 = 'https://github.com/login'
URL2 = 'https://github.com/MYPROJ/graphs/traffic'
with session() as s:
req = s.get(URL1).text
html = bs(req)
token = html.find("input", {"name": "authenticity_token"}).attrs['value']
com_val = html.find("input", {"name": "commit"}).attrs['value']
login_data = {'login_field': USER,
'password': PASSWORD,
'authenticity_token' : token,
'commit' : com_val}
r1 = s.post(URL1, data = login_data)
r2 = s.get(URL2)
print(r2.url)
print bs(r2.text).find('span', {'class':'num js-uniques uniques'})
感谢您的帮助
谢谢,
-杰夫想出来了。我使用了错误的地址发布我的登录名和用户名,以及其他一些错误的信息。
这是适用于我的更新代码:
from requests import session
from bs4 import BeautifulSoup as bs
USER = 'MyUserName'
PASSWORD = 'Mypassword'
URL1 = 'https://github.com/session'
URL2 = 'https://github.com/MyProj/graphs/traffic-data'
with session() as s:
req = s.get(URL1).text
html = bs(req)
token = html.find("input", {"name": "authenticity_token"}).attrs['value']
com_val = html.find("input", {"name": "commit"}).attrs['value']
login_data = {'login': USER,
'password': PASSWORD,
'commit' : com_val,
'authenticity_token' : token}
r1 = s.post(URL1, data = login_data)
r2 = s.get(URL2)
Cut1 = r2.text.split(',"summary":{"total":',2)
ViewsTot = Cut1[1].split(',"unique":',1)
ViewsUnq = ViewsTot[1].split('}}',1)
我不知道发布时的情况,不过现在Github需要cookies。