基于Scrapy的网络爬虫案例
前言这是在公司实习时,领导给出的一个数据爬取需求。(所以涉及法律问题请找公司的麻烦,不要联系我😂) 虽然我之前也干过网络爬虫,但都是在比较完整的框架下进行实现:以前只需要实现URL解析和网页源码抽取接口,其他像网络爬虫配置,数据存储,数据抽取,数据导出,任务启动和停止等模块只需要鼠标click一下 ...
阅读更多
详解HTTP协议
引入超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法 ...
阅读更多
从堆排序到优先级队列
前言本文包含以下几部分内容 [x] 二叉堆 [x] 堆排序 [x] 二叉堆应用:优先级队列 [x] Java PriorityQueue 正文二叉堆二叉堆是堆排序实现的底层逻辑结构。二叉堆是一种特殊的二叉树(完全二叉树),一般存储在数组中。 对于链表二叉树,一般是操作节点指针,而对于二叉堆,我们 ...
阅读更多
统计文件夹下各种后缀名的文件个数
test文件夹组织结构如下: test/ -1.jpg -dd/ -2.jpg -e/ -3.jpg -4.jpg -5.txt -ll.dir/ -5.rar 现在想统计test目录下不 ...
阅读更多
Python dict 笔记
介绍字典(dict)是Python内置提供的一种常用数据结构,他用于存放具有映射(mapping)关系的数据。 可变对象。 dict 常用操作创建两种方式,使用dict()函数创建字典;使用花括号语法创建字典。 dict1 = {}dict2 = dict() # 创建了一个空 ...
阅读更多
LRU: 缓存淘汰算法
前言在使用缓存时,由于缓存容量有限,当缓存容量到达上限,就需要删除部分数据挪出空间。但是缓存数据不能随机删除,一般情况下需要根据某种算法删除缓存数据。 常用的淘汰算法有LRU, LFU, FIFO,本篇介绍LRU算法并重点讲述LRU的实现。完整代码也是LeetCode 146. LRU缓存的答案。 ...
阅读更多
Tmux 简介
什么是Tmux打开一个终端窗口(terminal window,以下简称”窗口”),在里面输入命令。 用户与计算机的这种临时的交互,称为一次”会话”(session) 。 会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束。 一个典型的例子,打开一个远程窗 ...
阅读更多
火车站台数量问题
题干假设已知某个火车站的所有过往列车的到达arrival和离开departure时间(同一天),如果要求所有列车都不等待直接进站,问至少需要多少个站台。无需考虑晚点等特殊情况。 例如, Input: 到达时间: arr[] = {9:00, 9:40, 9:50, 11:00, 15:00, ...
阅读更多
Java-初识注解
初识注解简介 Annotation提供了一种为恒旭元素设置元数据的方法。 类似于修饰符,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。 Annotation是一个接口,程序可以通过反射来获取指定程序元素的Annotation对象。 Annotation不影响程序代码的运行。 如果希 ...
阅读更多
编写脚本读取文件并执行命令
最近遇到如下需求: 有一个文件,文件格式大概是这样 <filename1>\t<download_url1><filename2>\t<download_url2> 编写一个脚本循环读取该文件的每一行,使用axel命令将download_url下载下 ...
阅读更多