2 Solong

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 17w+

通过B站搜索页将搜索到的内容批量下载,并且显示下载进度

此次练习的目的将B站的视频批量下载下来,格式为flv格式.m4s格式的URL拼接有困难,只能一个一个进行下载,保存下来的格式为mp4.m4s格式的连接是一个为视频连接,一个为音频连接,需要下载后进行合并.m4s格式的连接进行访问的时候,将requests headers中的range参数范围设置一下,即可下载完整视频通过网页的解析,找到avid和cid两个参数,通过api解析json数据得出包含flv的视频连接程序源码import requestsimport

2020-09-24 17:11:42

P站爬虫,分析过程批量爬取原图png

P站爬虫,分析过程批量爬取原图pngP站网址链接1、想要批量爬取原图,得先能够找到原图的下载url,不能一口吃个胖子。选中图片审查元素找到图片的地址img标签里面包含的是该图片的地址但是都是jpg结尾的链接地址,我的上一篇博客爬取的是P站画师通,总结出jpg结尾的是网页上的缩略图,只有几百K的,放大之后就会模糊不清,我要爬取的是高清原图,肯定不是jpg链接通过上一篇博客的经验,我将jpg链接地址改成了png,结果碰壁了,无法访问但是我注意到了上面a标签的href标签地址我将鼠标放在

2020-09-04 11:36:14

Ubuntu安装pycharm,快捷创建desktop图标

Ubuntu安装pycharm去pycharm官网下载安装包 for linux下载linux community版本得到一个压缩包,解压进入文件夹进入bin目录文件夹下输入sh ./pycharm.sh然后进行安装下一次进入pycharm,还是一样的方法进入bin目录下,输入sh ./pycharm.sh 快捷创建desktop 图标下一步是创建desktop图标进行如上操作即可创建desktop图标如上即可添加到收藏夹按win搜索也可以找到...

2020-09-03 10:58:11

P站-画师通图片如何保存为原图

进入P站-画师通P站-画师通打开F12,选中一个图片找到html找到hrefhttps://www.huashi6.com/ + href就是下一级页面进入子页面,打开F12,选中图片其中data-original连接是图片地址https://img2.huashi6.com/images/resource/2018/02/08/67162h181p0.png?imageView2/3/q/100/interlace/1/w/2560/h/2560/format/webp进入图片

2020-09-02 16:57:48

设备树——pinctrl和gpio子系统

一、设备树中添加pinctrl节点模板1.1 创建对应的节点打开.dts文件,在iomuxs节点中的板子型号对应的节点中添加pinctrl_test节点。注意前缀必须为pinctrl_pinctrl_test: testgrp{ /*具体的pin信息*/};1.2添加fsl,pins属性设备树是通过属性来保存信息的,对于I.MX系列SoC而言,pinctrl驱动程序是通过读取fsl,pins属性值来获取PIN的配置信息。pinctrl_test: testgrp{ fsl,pi

2020-08-28 16:01:38

设备树常用的OF操作函数

设备树常用的OF操作函数1、查找节点的OF函数设备都是以节点的形式挂到设备树上的,因此想要获取这个设备的其他属性信息,必须先获取到这个设备的节点。linux内核使用device_node结构体来描述一个节点,该结构体定义在include/linux/of.h中。定义如下:struct device_node { const char *name; /* 节点名字 */ const char *type; /* 设备类型 */ phandle phandle; const char *f

2020-08-27 14:39:24

中断处理之中断上下文、中断上下部和共享中断

中断处理之中断上下文、中断上下部和共享中断1、中断上下部设备的中断会打断内核中进程的正常调度和运行。如上图描述了linux内核中断的处理机制。在中断执行时间尽可能短和中断处理大量工作中找到一个平衡点,linux将中断处理函数分为上部(top half)和下部(botoom half)。上部完成尽可能少的紧急的中断,往往只是简单的寄存器读写操作并触发中断,将需要中断处理的程序放到下部的队列中,等待中断处理。这样一来工作的中心就处于下部,下部来完成中断的绝大多数任务。下部中断处理程序可以被新的中

2020-08-25 13:13:29

Linux内存管理之kmalloc、malloc、vmalloc的区别

Linux内存管理之kmalloc、malloc、vmalloc的区别kmalloc和vmalloc分配的是内核空间的内存,malloc分配的是用户空间的内存。kmalloc保证分配的内存在物理上是连续的,内存只有在被DMA(直接存储器访问)访问的时候才需要在物理上连续。vmalloc分配的内存在虚拟地址空间上是连续的。malloc分配的是很多内存片断,不是连续的地址空间。kmalloc分配的内存比较小,malloc和vmalloc分配的内存较大。vmalloc要比kmalloc速度慢。尽管只

2020-08-25 11:09:47

ARM 设备树

ARM 设备树的起源设备树是一种描述硬件的数据结构,它起源于OpenFirmware。在linux2.6中,ARM架构的板级硬件细节过多的被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx中,采用设备树后,很多硬件信息可以直接通过设备树传递给linux,而不需要在内核中进行大量的冗余编码。设备树由一系列被命名的节点(Node)和属性(Property)组成,而节点本身可以包含子节点。所谓属性,其实就是成对出现的名称和值。在设备树中,可描述的信息包括:CPU的数量和类别

2020-08-18 16:40:16

linux总线设备驱动模型——设备总线device&bus

设备描述linux系统中每个设备由一个struct device描述struct device { ... struct kobject kobj; char bus_id[BUS_ID_SIZE]; //在总线上唯一标识设备的字符串 struct bus_type *bus; //设备所在总线 struct device_driver *driver; //管理该设备的驱动 void *driver_data; //该设备驱动使用的私有数据成员

2020-08-18 09:01:45

linux总线设备驱动模型——platform总线设备模型

Platform总线Platform总线是linux2.6内核加入的一种虚拟总线。Platform机制由两部分组成:platform_device 和 platform_driver。Platform设备驱动优势platform机制将设备本身的资源注册进内核,由内和统一管理。在驱动程序使用这些资源时使用统一的接口,提高了程序的可移植性。platform_device结构体struct platform_device{ const char *name; //设备名 int id

2020-08-13 13:27:04

linux总线设备驱动模型——总线bus_basic

设备元素模型总线驱动设备总线总线是处理器和设备之间的通道,在设备模型中,所有的设备都通过总线相连,甚至是内部的虚拟总线platform。在设备模型中,总线由bus_type结构表示,定义在<linux/device.h>中。struct bus_type { const char *name; //总线名字 struct bus_attribute *bus_attrs; //总线属性 struct device_attribute *dev_attrs

2020-08-12 14:08:42

linux总线设备驱动模型——Kset

Kset/******************************************************************* *Kset是具有相同类型的kobject集合,在sysfs中体现为一个目录, *在内核中用kset数据结构表示。 *******************************************************************/struct kset{ struct list_head list;//连接该kset中所有kobje

2020-08-12 10:42:45

linux总线设备驱动模型——Kobject

Sysfs文件系统基于RAM将内核的数据结构、数据结构的属性和它们之间的关系展现给用户空间。sysfs把连接在系统上的设备和总线组织成分级的文件,使其可以从用户空间直接访问。Sysfs文件系统挂载于/sys/目录下,它的子目录包括Block,Bus,devices和drivers等。Kobject的作用:创建sys目录下的文件夹实现了基本的面向对象管理机制与Sysfs文件系统紧密相连,在内核中注册的每一个Kobject对象对应/sys/下的一个子目录Kobject结构体内容不需要一

2020-08-11 13:38:34

字符设备驱动程序(ioctl)——开发步骤(6)

字符设备驱动程序(ioctl)ioctl函数模型int (*ioctl)(struct inode *inode,struct file *filp,unsigned int cmd,unsigned long arg){}返回值:ioctl函数的实现通常是根据命令执行的switch语句,但是命令号不能匹配到任何一个设备时,通常返回-EINVAL(非法参数)使用参数:参数如果是一个整数,可以直接使用,如果是一个指针,需要先确保用户地址的有效性,使用前需要做正确检查需要检测的函数:

2020-08-07 17:28:27

字符设备驱动程序(write & read)——开发步骤(5)

运用应用程序调用自己编写的字符设备驱动将字符设备驱动程序make,编译一下导入模块并查看模块sudo insmod memdev.kosudo lsmod创建设备文件memdev0并查看,在/dev目录下cd /devsudo mknod 设备文件名 c(字符设备驱动程序) 主设备号 次设备号查看主设备号cat /proc/devices创建设备文件sudo mknod memdev0 c 241 0编译mem_app.c文件,生成可执行文件a

2020-08-06 15:38:53

字符设备驱动程序(Demo)——开发步骤(4)

将字符驱动程序进行编译,导入模块1、编写Makefile文件/*************************************************** *外部编译:将内核模块源文件放在内核源码外部进行编译 *动态编译:编译生成动态模块 xxx.ko ***************************************************/进入终端查看当前系统的内核版本号uname -r进入系统modules目录查看cd /lib/modules/4.

2020-08-05 14:51:07

字符设备驱动程序(Demo源码)——开发步骤(3)

基于模块开发模板#include <linux/init.h>#include <linux/module.h>static int __init demo_init(void){ printk(KERN_INFO "---%s---%s---%d---\n",__FILE__,__func__,__LINE__); return 0;}static void __exit demo_exit(void){ printk(KERN_INFO "---%s---

2020-08-05 12:22:19

字符设备驱动程序——开发步骤(2)

字符设备驱动程序——开发步骤(2)cdev结构体struct cdev{ struct module *owner; //THIS_MODULE const struct file_operations *ops; //操作方法集 dev_t dev; //设备号 unsigned int count; //设备个数 struct list_head list;}dev_t 设备号用来唯一标识设备的。数据类型:32位无符号整型主设备号(前12位) + 次设

2020-08-05 10:42:02

外部输入两个字符串,用C语言编写实现my_strlen,my_strcpy,my_strncpy,my_strchr,my_strstr函数的功能

#include <stdio.h>#include <string.h>// 功能:计算字符串s的长度、返回s的长度,不包括结束符NULL。void my_strlen(char *str){ int lenth = 0; while (*str++) { lenth++; } printf("lenth:\t%d\n",lenth); }/*比较字符串s1和s2;(1)当s1&l

2020-08-04 15:10:06

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取