今日内容概要

  • 爬虫思路之破解知乎登录
  • 爬虫思路之破解红薯网小说
  • 爬取b站视频
  • Xpath选择器
  • MongoDB数据库

爬取b站视频

"""
爬取大的视频网站资源的时候,一般都需要下载一些第三方的功能模块来帮助我们爬取
b站、抖音... 开源:全世界公开 免费使用的 如何快速格式化json格式数据
https://www.bejson.com/ 研究每个视频url的特点
https://www.bilibili.com/video/av73342471?p=1
https://www.bilibili.com/video/BV1nE411176d?p=2
https://www.bilibili.com/video/BV1nE411176d?p=3
https://www.bilibili.com/video/BV1nE411176d?p=4
"""
1.访问视频链接查看网页源码发现视频的详细信息就在js代码中
<script>window.__playinfo__ = {...}</script>
# 真正表达式
<script>window.__playinfo__ = (.*?)</script> 2.需要一个整合的工具
ffmpeg

爬虫思路之破解知乎登录

1.知乎是必须登录之后才能访问网站资源的
2.发送登录查找接口信息及请求体数据格式
Request URL: https://www.zhihu.com/api/v3/oauth/sign_in
3.请求体数据全部都是加密的
aR79k4U0cT2tXqYq8LPG6vHmxq2pkLnmtbSBDgg9kLtxgeSmhbfGiqX1jbfVoG398LF0gQN0cT2tuqYq8LkMQbwGivwOgUxGw9e0g4e8kCV92vgBzh3qk4R92LkYFhVGwqoVJbCGST2tECx9BLkBEJXmST2tXqYhZUS8eDC8FBtxg0Y080Y0kHU0r0txXqYhyhomogcMUuppkLPyMLtykQrqr7FXr8tyihYqk4R92LkYJwNm8CSMcrU0g72XUBN0B8F0Se9yb8xfnGFqY8tqciU82_tx6_xB1MY0NUe0gw2pk8t9BLfBkvwGUbOYDq3q8Ln8gcgZcUS_iD3ZpvS8Xg9hgqxOcvSMMTYhc4uyoMtxc_2q1RFqr6S0gRo9U9oMzcO1erU0g_xO-GoMBwxMXg9hguoLevwGXwNM3rU0gRtxguFqm0YBrAHqgg2f2Txy0qtq6A98S8Yfo8OBhq28Xg9hHgOGebOBtrS8
# 这里的请求体肯定是在前端用的js代码加密(前端的逻辑代码只能是js代码)
4.知乎验证码校验
https://www.zhihu.com/api/v3/oauth/captcha?lang=en
lang=en 验证码使用的是英文
lang=cn 验证码使用的是中文
第一次朝该地址发请求如果返回的结果{"show_captcha":true}那么就表示此次登录需要验证码校验
如果返回的结果{"show_captcha":false}那么此次登录无需验证码
5.一般涉及到js加密都会出现一个关键字encrypt
全局搜索js文件中含有关键字的js代码 一个个查找
直到找到return __g._encrypt()代码
给该行代码加断点查看加密之前的数据格式 6.利用解析库获取数据
from urllib.parse import unquote_plus,
"""
unquote_plus 将密文转明文
urlencoded 明文转密文
"""
msg = '''
client_id=c3cef7c66a1843f8b3a9e6a1e3160e20&grant_type=password&timestamp=1566371889615&source=com.zhihu.web&signature=849409fe69f76b28a7ebfa95f0acc784d7c812bf&username=%2B8618896530856&password=dadasdasdas&captcha=nngt&lang=en&utm_source=&ref_source=other_https%3A%2F%2Fwww.zhihu.com%2Fsignin%3Fnext%3D%252F
'''
print(unquote_plus(msg))
client_id=c3cef7c66a1843f8b3a9e6a1e3160e20&grant_type=password&timestamp=1566371889615&source=com.zhihu.web&signature=849409fe69f76b28a7ebfa95f0acc784d7c812bf&username=+8618896530856&password=dadasdasdas&captcha=nngt&lang=en&utm_source=&ref_source=other_https://www.zhihu.com/signin?next=%2F 7.分析解析之后的数据参数
client_id 用户id(固定值)
grant_type 验证方式(固定值)
timestamp 时间戳*1000,去尾
source (固定值)
signature 签名(js加密,变动)
username 用户名
password 密码
captcha 验证码
lang 验证码方式(固定值)
utm_source (固定值)
ref_source (固定值)other_https://www.zhihu.com/signin?next=%2F 8.加密数据里面还有一个加密项
signature(js动态加密)
全局搜索signature加密代码得出一下结论 import hmac
from hashlib import sha1 9.请求体加密代码执行
拷贝请求体加密的代码然后编写完整的破解代码
pip install PyExecJS # 执行js代码 10.登录的cookie一开始就需要保存 后续做激活

爬虫之爬取B站视频及破解知乎登录方法(进阶)的更多相关文章

  1. Python爬取B站视频信息

    该文内容已失效,现已实现scrapy+scrapy-splash来爬取该网站视频及用户信息,由于B站的反爬封IP,以及网上的免费代理IP绝大部分失效,无法实现一个可靠的IP代理池,免费代理网站又是各种 ...

  2. scrapy进阶(CrawlSpider爬虫__爬取整站小说)

    # -*- coding: utf-8 -*- import scrapy,re from scrapy.linkextractors import LinkExtractor from scrapy ...

  3. Python爬虫一爬取B站小视频源码

    如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了 项目源码 from fake_useragent import UserAgent import requests import time ...

  4. python爬取B站视频弹幕分析并制作词云

    1.分析网页 视频地址: www.bilibili.com/video/BV19E… 本身博主同时也是一名up主,虽然已经断更好久了,但是不妨碍我爬取弹幕信息来分析呀. 这次我选取的是自己 唯一的爆款 ...

  5. Python 自动爬取B站视频

    文件名自定义(文件格式为.py),脚本内容: #!/usr/bin/env python #-*-coding:utf-8-*- import requests import random impor ...

  6. python 爬取B站视频弹幕信息

    获取B站视频弹幕,相对来说很简单,需要用到的知识点有requests.re两个库.requests用来获得网页信息,re正则匹配获取你需要的信息,当然还有其他的方法,例如Xpath.进入你所观看的视频 ...

  7. 爬取B站视频

    先安装you_get pip install you_get 爬取代码,爬了个ASMR的,学习困了自我催眠 import sys from you_get import common as you_g ...

  8. 爬虫练习四:爬取b站番剧字幕

    由于个人经常在空闲时间在b站看些小视频欢乐一下,这次就想到了爬取b站视频的弹幕. 这里就以番剧<我的妹妹不可能那么可爱>第一季为例,抓取这一番剧每一话对应的弹幕. 1. 分析页面 这部番剧 ...

  9. Python 网络爬虫实战:爬取 B站《全职高手》20万条评论数据

    本周我们的目标是:B站(哔哩哔哩弹幕网 https://www.bilibili.com )视频评论数据. 我们都知道,B站有很多号称“镇站之宝”的视频,拥有着数量极其恐怖的评论和弹幕.所以这次我们的 ...

随机推荐

  1. Homework_1

    寒假第一份作业 一.博客园部分 1.个人博客园链接 Click here 2.markdown界面截图 我用typora编辑 所以贴上typora界面的截图 二.Github部分 1.个人Github ...

  2. 布客&#183;ApacheCN 编程/后端/大数据/人工智能学习资源 2020.9

    公告 ApacheCN 项目的最终目标:五年内备份并翻译 Github 上的所有教程(其实快被我们啃完了,剩下的不多了). 警告各位培训班:对 ApacheCN 宣传文章的举报,也将视为对 Apach ...

  3. Redis 源码简洁剖析 07 - main 函数启动

    前言 问题 阶段 1:基本初始化 阶段 2:检查哨兵模式,执行 RDB 或 AOF 检测 阶段 3:运行参数解析 阶段 4:初始化 server 资源管理 初始化数据库 创建事件驱动框架 阶段 5:执 ...

  4. Antd组件Table树型多选全选问题

    组件库antd里面的树型选择不能做到勾选父组件然后一起勾选子组件情况,我也不知道是组件库的问题还是原本设计就是这样 刚好组件库存在rowselection的配置项,既然存在拓展方法,又遇到需求,那么就 ...

  5. 为什么C语言Scanf函数对字符串不要加 取地址运算符&

    原文1:http://www.360doc.com/content/16/0515/11/19455598_559288667.shtml 原文2:https://zhidao.baidu.com/q ...

  6. iOS开发笔记,简单实现视频音频的边下边播

    总是在网上看别人的博文,受益匪浅,从没自己写过,今天分享一点小经验,第一次写技术博客,希望对同行的ios猿们有所帮助.   先介绍一下自己的情况:一年ios开发,http协议不太懂,大约知道断点下载h ...

  7. JVM性能调优与实战基础理论篇-上

    Java虚拟机 概述 Java官方文档 https://docs.oracle.com/en/java/index.html JVM是一种规范,通过Oracle Java 官方文档找到JVM的规范查阅 ...

  8. Docker创建私有镜像仓库

    Docker官方提供了一个工具docker-registry,可以借助这个工具构建私有镜像仓库: 1.拉取registry镜像 # docker pull registry//可以使用 docker ...

  9. python篇第10天【For 循环语句】

      实例 #!/usr/bin/python # -*- coding: UTF-8 -*- for a in 'Henry': print "This is ", a   fru ...

  10. Solution -「NOI 2020」「洛谷 P6776」超现实树

    \(\mathcal{Description}\)   Link.   对于非空二叉树 \(T\),定义 \(\operatorname{grow}(T)\) 为所有能通过若干次"替换 \( ...