模拟登录Github

  • 1. 获取账号密码
  • 2. 请求信息详解
  • 3. 模拟登录

1. 获取账号密码

模拟登录的网址为Github,界面如下

① 进入界面后,右键进入检查界面,选择菜单上面的Network选项(或者F12)

② 在左侧的登录界面输入用户名和密码(随机),比如这里输入用户名为‘爬虫高阶’,密码为‘123456’,这时候右侧会出现一个session文件,点开后鼠标下滑,可以找到Form data内容块,下面就记载了此次发送请求的相关信息,如下

2. 请求信息详解

上面已经知道了账户和密码所在的位置,关于返回的请求页面,这里做一下解析。

① General内容块下包含了此次请求的资源url,请求类型(post),状态码,服务器的地址和端口,Referrer的策略

② Request Headers内容块下包含请求的内容格式(Accept),可接受编码(Accept-Encoding),可接受的语言(Accept-Language),缓存设置(Cache-Control),连接(Connection),发送内容长度(Content-Length),身份识别(cookie),发起追踪(DNT),主站(Host),根网址(Origin),请求来源(Referer),浏览器兼容性(浏览器兼容性),浏览器(User-Agent)

③ Form Data内容块里面的数据可以全选后放在再编辑器内,然后再做不必要的清楚,这样可以节省时间,避免一条条数据复制粘贴,需要保留的参数:登录信息(commit),用户验证(authenticity_token),用户名(login)和密码(password)以及时间戳(timestamp,timestamp_secret)。其余的参数:广告id(ga_id),微博授权登录(webauthn-support,webauthn-iuvpaa-support),没有内容的可以忽略

3. 模拟登录

代码实现如下

import requests
import timeheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36','Referer': 'https://github.com/login',#'Host': 'github.com','Cookie': '_octo=GH1.1.263989782.1569344881; _ga=GA1.2.259279496.1569344916; _device_id=497f8bc5de7714a282b363912445cbe2; has_recent_activity=1; tz=Asia%2FShanghai; experiment:homepage_signup_flow=eyJ2ZXJzaW9uIjoiMSIsInJvbGxPdXRQbGFjZW1lbnQiOjYuOTUyMDExNDIzODcyNzg2LCJzdWJncm91cCI6ImNvbnRyb2wiLCJjcmVhdGVkQXQiOiIyMDIwLTA0LTE1VDAwOjIwOjMyLjYyM1oiLCJ1cGRhdGVkQXQiOiIyMDIwLTA0LTE1VDAwOjIwOjMyLjYyM1oifQ==; _gat=1; logged_in=no; _gh_sess=3u7Rr3weOwMDK51PRATzAAunBZ6iaiIId51K4dKUPfDuiYqCuiJ%2FWNRtS%2B3Cmii7XwhbLRCGWkWA69enfTAtIcQLPnEJlAujNSRw7VAeuiOTVx0pmWOFQaf9zzWIO80e%2FmCpoI%2BLV%2FOR5shTzdLNTsUOA7Od02Vu4ijZkGIfqi0n3iHWFVYWg1zEeNNS%2FemkvyHCDirZDM1dM5QR6Gsr4egMrErmfYHN9XFRJFNB%2BOo%2FRI0vjjSYtjrywIrRfdBVjqBwDFq18J6frFdpfbnSig%3D%3D--JpDybCWe8xNbSsHb--Z%2FH1E8%2F1u2hwwXQu5UL7yA%3D%3D'}def save_html(text):with open('login.html','w',encoding ='utf-8') as f:f.write(text)print('网页已经成功写入!')def post_html(username,password):url = 'https://github.com/session'data = {'commit': 'Sign in','authenticity_token': 'DjWfw+dn9H52qV7j1FEHYzrvV4ltxs//Z7QtC0AfJua25GJKLgCkO61yOMysDEjTXQQBmKte3DRmBz9ukz8YGw==',#'ga_id': '259279496.1569344916','login': username,'password': password,#'webauthn-support': 'supported',#'webauthn-iuvpaa-support': 'unsupported',#'timestamp': '1586915368490',#'timestamp_secret': '1f82b652ccaaf2e4e277cdd6f1e3707cc779a934d12d787f1d5ca0a41850f2a7'}html = requests.post(url,headers=headers,data=data)if html.status_code == 200:print('正在下载登录网页......')save_html(html.text)else:print(html.status_code)if __name__ == '__main__':post_html(username='xxx',password='xxx')

→ 输出的结果为:(网页打开后可以正常跳转自己的github界面)

【爬虫高阶】模拟登录Github相关推荐

  1. java爬虫-0022,模拟登录

    项目地址:https://github.com/wenrongyao/java_crawler 基本原理:用户输入登录信息=>登录成功,服务器将登录成功的信息发送的前台,通常存在cookie中= ...

  2. python爬虫分析模拟登录时会变的参数_Python爬虫之urllib模拟登录及cookie的那点事...

    在web  sprider crawl过程中,许多网站都需要登录后才能访问,一般如果我们不用爬虫框架的前提下,常规用的就两个库 ,urllib库和requests库,本文将用最基础的urllib库,以 ...

  3. python爬虫实现豆瓣模拟登录

    这是豆瓣登录界面URL https://www.douban.com/accounts/login 用pychrm编写爬虫代码 import requests url = 'https://www.d ...

  4. Python网络爬虫实战(四)模拟登录

    对于一个网站的首页来说,它可能需要你进行登录,比如知乎,同一个URL下,你登录与未登录当然在右上角个人信息那里是不一样的. (登录过) (未登录) 那么你在用爬虫爬取的时候获得的页面究竟是哪个呢? 肯 ...

  5. 爬虫day01(上午) 模拟登录古诗文网

    前言:今天是学习爬虫的第一天,因为看的教学视频比较老,所以很多案例都不能用了,于是我自己发挥动手操作,做了个比视频里更有含金量的练习,由于与视频案例大有不同,所以期间发生了点问题,经过探索现已解决,留 ...

  6. python淘宝爬虫登陆功能和下单功能_Python 爬虫实战5 模拟登录淘宝并获取所有订单...

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 python模拟登录淘宝网页 获取登录用户的所有订单详情 ...

  7. python爬虫(四)——模拟登录丁香园

    实战 实战小项目:模拟登录丁香园,抓取论坛页面人员基本信息与回复帖子.丁香园论坛:http://www.dxy.cn/bbs/thread/626626#626626 思路 首先把登陆方式由扫码切换为 ...

  8. python爬虫4.1模拟登录古诗词网并通过Cookie处理获取个人信息

    1.前言 好久没有写过笔记了....本来这节内容是模拟登录人人网,但是人人网现在无法注册了...就换了家网站.这个代码是可以模拟登录古诗词网,进入登录成功后跳转的页面后,再进入个人收藏界面,获取个人收 ...

  9. Python 爬虫实战5 模拟登录淘宝并获取所有订单

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 python模拟登录淘宝网页 获取登录用户的所有订单详情 ...

最新文章

  1. 0x53. 动态规划 - 区间DP(习题详解 × 8)
  2. Vuex之module
  3. MATLAB编程经典程序 素数的判断,求0~100素数之和
  4. stdout标准输出、stderr标准错误输出 标准输入、标准输出、标准错误输出分别被定义为0、1、2。
  5. [译].NET 4 中玩耍内存映射文件
  6. java同步通信_java-线程-线程同步通信技术
  7. android单例模式代码,设计模式(一):Android 源码中的单例模式
  8. Linux驱动开发经典书籍
  9. c语言程序设计教程课后选择题答案,C语言程序设计教程课后习题包括答案.docx...
  10. matplotlib绘制树形图之基本配置——万能模板案例
  11. html 文字自动转大写
  12. 五步搞定Android开发环境部署——非常详细的Android开发环境搭建教程
  13. Eclipse生成jar包和导入jar包
  14. mysql acid
  15. 赛马命运已成,微盟在劫难逃
  16. php 二维码白边,php生成缩略图自动填充白边例子
  17. java基础入门篇(1)
  18. LIMS实验室系统建设如何提高检验效率?
  19. 心态-《重塑心灵》书中的精髓:了解NLP,重塑健康心灵。
  20. 云计算事故不断,企业上云如何避免事故导致重大损失?

热门文章

  1. 树莓派zero w安装linux,树莓派 Zero W 的USB/以太网应用一例
  2. vulnhub--Leeroy:1
  3. 图像处理之同态滤波实现灰度图像增强
  4. SAP发出商品的系统配置
  5. 微信红包封面怎么制作?微信红包封面序列号如何领取
  6. 憨批的语义分割4——pspnet模型详解以及训练自己的pspnet模型(划分斑马线)
  7. 虚拟线上展会-线上vr展馆实现24h沉浸式看展
  8. GitHub 注册失败的原因 以及解决 。
  9. Nginx之配置虚拟主机vhost
  10. 有奖调研 | 共绘区块链从业者图鉴