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

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

  目标地址: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‘: ‘VDFWa2hJWjFMb1hpRUFLRDVhUmc3MXg1Tk02TDhsUnhDMERuNGpyT2Y4STlQZ2xCV1lCZEFhK21wdFR1bkpGYUV0WEJzcDEydWFzcm93aVc4Nk91Q2JicmtRV0NIQ0lRSWM4aFhrSVFYbCtCczBwdnhVN0YySVJJNUFpQnhyTzNuRkJwNDJZUWxUcEk2M2JkM3VSMDdXVHNOY1htQkthckJQZDJyUVR2RzBNUkU3VnltRVF2Um1admU3c3YzSGlyVnVZVm0ycnA1eUhET1JRVWNLN0pSbndKWjljMGttNG5URWJ1eU8rQjZXNEMxVEthcGVObDFBY2gvc2ZzWXcvWWZab29wQWJyU0l6cmZscWhBQUlzYTA3dTRtb3l1S0hDYytHY2V1SUhEWlZvVlZoSWZpTzBjNmlidFF2dzI2bWgtLTJON1lqbm5jWUtSYmtiVEM1clJPakE9PQ%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‘:‘[email protected]‘,
        ‘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‘:‘[email protected]‘,
        ‘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)

  

原文地址:https://www.cnblogs.com/littlesky1124/p/9315617.html

时间: 2024-08-30 11:04:58

Python爬虫之用脚本登录Github并查看信息的相关文章

python爬虫scrapy框架——人工识别登录知乎倒立文字验证码和数字英文验证码(2)

操作环境:python3 在上一文中python爬虫scrapy框架--人工识别登录知乎倒立文字验证码和数字英文验证码(1)我们已经介绍了用Requests库来登录知乎,本文如果看不懂可以先看之前的文章便于理解 本文将介绍如何用scrapy来登录知乎. 不多说,直接上代码: import scrapy import re import json class ZhihuSpider(scrapy.Spider): name = 'zhihu' allowed_domains = ['www.zhi

利用Python脚本登录Github!想怎么玩就怎么玩!

前言分析目标网站的登录方式 目标地址: https://github.com/login     登录方式做出分析: 第一,用form表单方式提交信息, 第二,有csrf_token, 第三 ,是以post请求发送用户名和密码时,需要第一次get请求的cookie 第四,登录成功以后,请求其他页面是只需要带第一次登录成功以后返回的cookie就可以. 以get发送的请求获取我们想要的token和cookie 代码: 获取这两个值就可以,进行下一步发送登录请求: 第二步post方式提交用户名密码

[Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

目录(?)[+] 前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时继续介绍Selenium+Python官网Locating Elements部分内容.        希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~        [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)        

Python爬虫,京东自动登录,在线抢购商品

京东抢购Python爬虫,自动登录京东网站,查询商品库存,价格,显示购物车详情等.可以指定抢购商品,自动购买下单,然后手动去京东付款就行. chang log2017-03-30 实现二维码扫码登陆 2017-06-27 Golang版JD_AutoBuy 运行环境Python 2.7 第三方库Requests: 简单好用,功能强大的Http请求库 beautifulsoup4: HTML文档格式化及便签选择器 环境配置 1 pip install requests 2 pip install

python爬虫 爬取知乎用户的用户信息

我用python爬虫找到了不想告诉我她知乎ID的妹纸的ID--. 在我做了这件事情之后 , 她觉得我越来越懂她了 , 嘻嘻 有一天 , 我发现我心仪已久的妹纸在朋友圈里分享了知乎专栏的文章 , 就知道她也刷知乎 . 如果在知乎上关注她 , 我就能知道 , 她最近关注什么 , 心里想些什么 , 了解了解她喜欢的方面 , 还能作为谈资 , 简直太赞了 (*^^)v . 但是输入她的名字-- 在知乎上根本找不到好吗 (?`灬′?) 我们两个聊天的时候 , 刚好说到了她分享的那篇文章 , 我很自然的说:

python爬虫之:模拟12306登录

试了好久登录的时候总是显示:系统忙,请刷新,,,太折磨人了,搞了半天才想到是请求头部的问题..... 验证码还是要人工识图.. #!/bin/env python # -*- coding=utf-8 -*- import ssl import sys import urllib2 import random import httplib import json from cookielib import LWPCookieJar import urllib import re import g

Python 爬虫的工具列表 附Github代码下载链接

这个列表包含与网页抓取和数据处理的Python库 网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络库(绑定libcurl). urllib3 – Python HTTP库,安全连接池.支持文件post.可用性高. httplib2 – 网络库. RoboBrowser – 一个简单的.极具Python风格的Python库,无需独立的浏览器即可浏览网页. MechanicalSoup -一个与网站

[python爬虫] Selenium定向爬取PubMed生物医学摘要信息

本文主要是自己的在线代码笔记.在生物医学本体Ontology构建过程中,我使用Selenium定向爬取生物医学PubMed数据库的内容.        PubMed是一个免费的搜寻引擎,提供生物医学方面的论文搜寻以及摘要.它的数据库来源为MEDLINE(生物医学数据库),其核心主题为医学,但亦包括其他与医学相关的领域,像是护理学或者其他健康学科.它同时也提供对于相关生物医学资讯上相当全面的支援,像是生化学与细胞生物学.        PubMed是因特网上使用最广泛的免费MEDLINE,该搜寻引

python 爬虫2-正则表达式抓取拉勾网职位信息

import requestsimport re #正则表达式import time import pandas #保存成 CSV #header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0'}header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/2