爬虫的一些小技巧总结
一、在爬虫中,爬取的数据类型如下
1.document:返回的是一个HTML文档
2.png:无损的图片,jpg:压缩后的图片,wbep:有损压缩,比png差,比jpg好
3.avg+xml图像编码字符串
4.script:脚本文件,依据一定格式编写的可执行的文件
5.gif:图像交换格式
6.xhr:返回的是json数据类型,在没有刷新整个网页的情况下,更新部分网页,也称Ajax请求
7.包后缀是css意味着其是css样式
二、
1.几个快捷进入开发者工具的指令:
打开开发者工具方法:F12(键盘)/fn+f12/ctrl+shift+i
2.列表转字符串方法:
str.join(列表)
如'\n'.join(selector.css('.noveContent p ::text').getall())
3.files = os.listdir(filename) # 获取文件夹下所有的小视频
with zipfile.ZipFile(filename+title+'.mp4',mode='w') as z:
z.write(content)
4.print(response.text)后,在下方,按住ctrl+f键可以搜索如下图
点击:
点击.*可以用正则表达式,如果用正则表达解析数据,可以在这里尝试,可以看见匹配的数量,然后再写入代码中。
5.列表中嵌套元祖,如何快速找出元祖中的元素。
如:a=[(1,'as'),(2,'ajsh'),(781,'ajhsasa')]
用第二张图的方法,可以直接取出元素
6.遇到参数很多,加冒号很麻烦怎么办,如下图:
首先选中代码,按ctrl+r出现下图:
点击·*进入正则,写入下图:
代码是: (.*?): (.*)
'$1': '$2',
点击replaceall
结果展现:
二、视频类爬虫总结
爬取短视频类型的数据一般步骤:
1.点击media,刷新,播放一个视频,会刷新一个包,点击发现是播放视频的包,
2.复制这个包url中的关键字,在搜索框中进行搜索,看有哪些包有关键字。
3.搜索后找到有play_url的包
4.看这个包的url,观察有什么规律
5.以糖豆视频为例,发现这个包的url有参数vid
6.查找参数在哪个位置
7.在xhr 动态加载中找到包,发现其中json数据中有vid的数据。
8.访问xhr 中的包获取vid数据,利用获取到的vid数据拼凑含有play_url的包的链接,访问这个链接,获取play_url
9.多页爬取,观察xhr 包的链接有什么规律,发现参数为页数,即可多页爬取
注意:访问视频play_url时,爬取短视频类型,headers中把user-agent,cookie,refer全部加上
爬取长视频的一般步骤:长视频通常以m3u8的格式存在,找包的过程与上述一致,找的是ts格式的文件,但一般存在于xhr下面。小技巧,若通过参数找不到就直接搜索m3u8,说不定可以找到终极目标是找到一个包能返回下面的界面

不同的网站,这个包找的地方不同,A站中搜索就可以找到,腾讯视频则先要找到一个含m3u8的包,从里面提取出一个链接,再访问这个链接,得到上面的界面。
下载时,要下载为ts的视频格式,多的一步是将文件合成。
可以将多个ts包合成一个下载代码:
with open('斗罗大陆.mp4',mode='ab') as f:f.write(ts_content)
三、打包exe与制表库的使用
1.制表模块使用prettytable
from prettytable import PrettyTable
tb = PrettyTable() # 实例化一个对象
tb.field_names = ['序号','歌手','歌名'] # 设置字段名
tb.add_row([num,singer,song_name]) # 写入表格行
2. 将python文件打包成exe文件
首先,在项目中下载pyinstaller包pip install pyinstaller
然后在需要打包的python文件目录路径下输入cmd

在终端输入:pyinstaller -F 文件名.py
成功后会出现dit的文件夹,里面有exe的文件
相关文章:
爬虫的一些小技巧总结
一、在爬虫中,爬取的数据类型如下 1.document:返回的是一个HTML文档 2.png:无损的图片,jpg:压缩后的图片,wbep:有损压缩,比png差,比jpg好 3.avgxml图像编码字符串 4.script:脚本文件,依据一定格式编写的可执行的文…...
LeetCode---386周赛
题目列表 3046. 分割数组 3047. 求交集区域内的最大正方形面积 3048. 标记所有下标的最早秒数 I 3049. 标记所有下标的最早秒数 II 一、分割数组 这题简单的思维题,要想将数组分为两个数组,且分出的两个数组中数字不会重复,很显然一个数…...
React之数据绑定以及表单处理
一、表单元素 像<input>、<textarea>、<option>这样的表单元素不同于其他元素,因为他们可以通过用户交互发生变化。这些元素提供的界面使响应用户交互的表单数据处理更加容易 交互属性,用户对一下元素交互时通过onChange回调函数来监听…...
Siamrpn++论文中文翻译(详细!)
SiamRPN: Evolution of Siamese Visual Tracking with Very Deep Networks SiamRPN:具有非常深度网络的Siamese视觉跟踪的进化 【siamrpn论文地址】 https://arxiv.org/abs/1812.11703 摘要 基于Siamese网络的跟踪器将跟踪表示为目标模板和搜索区域之间的卷积特征…...
第一篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas库
传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、主要特点和功能介绍二、Series 示例代码三、DataFrame示例代码四、数据导入/导出示例代码五、数据清洗示例代码六、数据选择和过滤示例代码七、数据合并和连接示例代码八、数据分组和聚…...
基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的停车位检测系统(Python+PySide6界面+训练代码)
摘要:开发停车位检测系统对于优化停车资源管理和提升用户体验至关重要。本篇博客详细介绍了如何利用深度学习构建一个停车位检测系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并结合了YOLOv7、YOLOv6、YOLOv5的性能对比…...
状态模式(State Pattern)
定义 状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态改变时改变其行为。这意味着,当对象的状态发生变化时,它的行为也会发生变化。状态模式特别适用于行为依赖于其状态的对象,而且当这…...
js之版本号排序
版本号排序 给定一个由版本号组成的数组,按照版本号由小到大排序 假如版本号如下 : ["0.1.1", "2.3.3", "0.302.1", "4.2", "4.3.5", "4.3.4.5"];原理很简单,通过自定义sort排…...
考取ORACLE数据库OCP的必要性 Oracle数据库
OCP证书是什么? OCP,全称Oracle Certified Professional,是Oracle公司的Oracle数据库DBA(Database Administrator,数据库管理员)认证课程。这是Oracle公司针对数据库管理领域设立的一项认证课程,旨在评估和…...
WordPress通过宝塔面板的入门安装教程【保姆级】
WordPress安装教程【保姆级】【宝塔面板】 前言一:安装环境二:提前准备三:域名解析四:开始安装五:安装成功 前言 此教程适合新手,即使不懂代码,也可轻松安装wordpress 一:安装环…...
Leetcoder Day25| 回溯part05:子集+排列
491.递增子序列 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例: 输入:[4, 7, 6, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [6, 7], [7,7], [4,7,7]] 说明: 给定数组的长度不会超过15。数组中的整数范围是 [-100,100]。给定数…...
【HTML】HTML基础5(特殊字符)
目录 特殊字符的作用 常用的特殊字符 使用效果 特殊字符的作用 例如 当我在两个文字间打出空格时 <p>“银河护卫队”系列 在漫威电影宇宙中一直是异数般的存在,不仅因为影片主角是一群反英雄,<strong>与超级英雄相比显得格格不入<…...
MacBook将iPad和iPhone备份到移动硬盘
#创作灵感# 一个是ICloud不够用,想备份到本地;然而本地存储不够用,增加容量巨贵,舍不得这个钱,所以就想着能不能备份到移动硬盘。刚好有个移动固态,所以就试了一下,还真可以。 #正文# 说一下逻…...
贪心 Leetcode 376 摆动序列
摆动序列 Leetcode 376 学习记录自代码随想录 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#…...
蓝桥杯(3.1)
92. 递归实现指数型枚举 import java.util.Scanner;public class Main {static int N 16;static int n;static int[] st new int[N]; public static void dfs(int u) {if(u > n) {for(int i1;i<n;i) {if(st[i] 1)System.out.print(i" ");}System.out.print…...
像用Excel一样用Python:pandasGUI
文章目录 启动数据导入绘图 启动 众所周知,pandas是Python中著名的数据挖掘模块,以处理表格数据著称,并且具备一定的可视化能力。而pandasGUI则为pandas打造了一个友好的交互窗口,有了这个,就可以像使用Excel一样使用…...
C#面:Application , Cookie 和 Session 会话有什么不同
Application、Cookie 和 Session 是在Web开发中常用的三种会话管理方式 Application(应用程序): Application 是在服务器端保存数据的一种方式,它可以在整个应用程序的生命周期内共享数据。Application 对象是在应用程序启动时创…...
BUUCTF---数据包中的线索1
1.题目描述 2.下载附件,是一个.pcap文件 3.放在wireshark中,仔细观察数据流,会发现有个叫fenxi.php的数据流 4.这条数据流是http,且使用GET方式,接下来我们使用http.request,methodGET 命令来过滤数据流 5.在分析栏中我们追踪htt…...
【数仓】kafka软件安装及集群配置
相关文章 【数仓】基本概念、知识普及、核心技术【数仓】数据分层概念以及相关逻辑【数仓】Hadoop软件安装及使用(集群配置)【数仓】Hadoop集群配置常用参数说明【数仓】zookeeper软件安装及集群配置 一、环境准备 准备3台虚拟机 Hadoop131ÿ…...
代码随想录 二叉树第三周
目录 404.左叶子之和 513.找树左下角的值 112.路径总和 106.从中序与后序遍历构造二叉树 105.从前序与中序遍历序列构造二叉树 654.最大二叉树 404.左叶子之和 404. 左叶子之和 简单 给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输…...
鸿蒙 Media Kit(媒体服务):音视频播放、录制
本文同步发表于微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新 Media Kit(媒体服务)是鸿蒙系统中用于开发音视频播放或录制功能的核心模块。无论是开发音乐播放器、视频播放器,还是实现音视频录制、…...
ChatGLM3-6B与Kubernetes集成:云原生部署实战
ChatGLM3-6B与Kubernetes集成:云原生部署实战 1. 引言 在人工智能快速发展的今天,如何高效部署和管理大语言模型成为了许多开发者和企业面临的实际问题。传统的单机部署方式虽然简单,但在面对高并发访问、弹性扩缩容和故障恢复等场景时显得…...
从BERT到GPT:预训练语言模型的技术演进史
一场改变软件测试范式的革命2018年,当谷歌发布BERT模型时,软件测试领域并未意识到这项技术将如何重塑自动化测试工具的设计逻辑。三年后,GPT-3的诞生让测试脚本自动生成从实验室走向工程实践。本文以软件测试工程师的视角,剖析预训…...
Cinny架构设计揭秘:组件化开发与现代前端工程实践
Cinny架构设计揭秘:组件化开发与现代前端工程实践 【免费下载链接】cinny Yet another matrix client 项目地址: https://gitcode.com/GitHub_Trending/ci/cinny Cinny作为一款现代Matrix客户端,采用组件化架构与前沿前端技术栈,构建了…...
ROLL Agentic RL实战:多轮交互智能体的训练与部署
ROLL Agentic RL实战:多轮交互智能体的训练与部署 【免费下载链接】ROLL An Efficient and User-Friendly Scaling Library for Reinforcement Learning with Large Language Models 项目地址: https://gitcode.com/gh_mirrors/roll13/ROLL ROLL(…...
别再死磕Softmax了!清华黄高团队新作Agent Attention,让Transformer在高分辨率图像上也能飞起来
Agent Attention:突破Transformer高分辨率瓶颈的下一代注意力机制 当你在Stable Diffusion中生成一张4K图像时,是否遇到过显存爆满的尴尬?当用DeiT处理医学影像时,是否因计算资源不足而被迫降低分辨率?这些痛点背后&am…...
小程序黑白棋AI:从零实现一个简单的游戏AI
1. 黑白棋游戏基础与小程序环境搭建 黑白棋(又称翻转棋)是经典的策略型棋盘游戏,使用8x8方格棋盘和双色圆形棋子。游戏规则简单却充满策略性:玩家轮流落子,将对手棋子夹在己方棋子之间时,可将其翻转成己方颜…...
MPU9150 DMP库深度解析:嵌入式运动协处理器工程实践
1. MPU9150_DMP库深度解析:嵌入式系统中DMP运动协处理器的工程化应用MPU9150是InvenSense公司于2012年推出的集成六轴惯性测量单元(6-DoF IMU)与三轴电子罗盘(3-DoF Magnetometer)的高精度MEMS传感器。其核心价值不仅在…...
Vue3 解决表格切换闪烁的问题
表格切换闪烁的原因:el-table-column 没有固定宽度,导致切换标签页时表格重新计算列宽产生视觉变化(闪烁形象)表格实际需求的分析:需要实现自动适应视窗宽度,表格至终不会有横向滚动条最佳解决方案…...
Pixel Dream Workshop应用场景:像素风格UI组件库(按钮/滑块/图标)生成
Pixel Dream Workshop应用场景:像素风格UI组件库(按钮/滑块/图标)生成 1. 像素艺术生成新纪元 在数字产品设计领域,像素艺术正经历着令人振奋的复兴。Pixel Dream Workshop作为新一代AI像素艺术生成工具,为设计师和开…...




