冯小贤 发布的文章

学习没有动力,那吃枣是?的,学习 nodejs 的过程中,我来给大家一点提神醒脑的?

这里我是用了 cnodejs社区 最简单的爬虫小教程做基础改鳝,完成的

//初始化项目
npm init
//启动 app.js
node app.js
//你就可以愉♂快的玩耍了(代码见文章末尾)
如不知道如何使用 nodejs
Linux玩家可以看 我的这篇文章;Windows玩家可以直接去官网下载 .msi ,下一步下一步安装 直达车

基本的爬取思路

  1. 页面的分页按钮,抓到在此页出现的所有小姐姐的页面链接,存储下来
  2. 使用 eventproxy 来并发访问每个小姐姐的页面
  3. 访问的过程中,使用 cheerio(类似jquery的模块) 来匹配我们需要的图片地址 ,记录找到的所有图片地址
  4. http 去请求每张图片地址,保存二进制数据流
  5. fs将二进制数据流,输出成图片文件,文件名从原始地址提取出来
  6. 保存至 文件夹
这里我怕由于请求过于庞大,使用 express 构建静态页面提供 查询下载,降低爬取的站点被爬死的可能性

下载地址:xjj.zip

起步

服务器信息
1.System

CentOS release 6.9 (Final)
Kernel \r on an \m

2.Configuration

Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz
1G,1核 (阿里拉基云)

step 1

这里我使用的是我大淘宝源


// 进入存放目录,我这里放在 /home/nodejs 下,放哪里看你喜好辣
cd /home/nodejs
// 下载 nodejs 二进制包
wget https://npm.taobao.org/mirrors/node/v6.10.2/node-v6.10.2-linux-x86.tar.gz
// 解压包
tar -xzvf node-v6.10.2-linux-x86.tar.gz
// 得到一个文件夹 node-v6.10.2-linux-x86,进入这个目录下的 bin 目录
cd node-v6.10.2-linux-x86/bin
// 确认下载的 nodejs 的版本无误
./node -v

step 2

现在你只能在这个目录下操作 node 呀,所以我们要加到 用户环境里


// 查看一下当前所在的目录
pwd
// 添加软连接到 /usr/local/bin
ln -s /home/nodejs/node-v6.10.2-linux-x86/bin/node /usr/local/bin/node
ln -s /home/nodejs/node-v6.10.2-linux-x86/bin/npm /usr/local/bin/npm

- 阅读剩余部分 -

少(fei)女(zhai)粉(sao) 的颜色真好看~

资费详情

22卡资费 22元/月;小电视卡资费 66元/月
1G全国流量(貌似首月再送 1G);4G全国流量(貌似首月再送 2G)
国内接听免费;国内接听免费(还送 200分钟国内通话)
省内流量1元500M;省外流量2元500M(一样)
短信和语音是一样的
再就是赠送的话费和直播特权道具有一点小区别辣
这些都是小事,关键是免流量看 bilibili (注:一个月上限好像是40G哦~)

卡包装1

卡包装2

- 阅读剩余部分 -

Git

刚才用 桌面版GitHub 手残点了个 Revert ,文件被删掉了。。。自己又在这个提交上点了次 Revert 文件又回来了。

但是自己看着这两次并没有卵用的提交,♥里痒痒,X度了一下

找到下面这个个人靠谱的方法,自己用的这种方式撤回成功

git reset --hard <commit_id>

commit_id 在 log 中是这种形式 44c7aa824b0f6383ad1eaf037185ea25cb77878f
使用 桌面版GitHub 省略至 6位数 的sha码 ,也可撤回


除了 commit_id 之外还有两种方式

--HEAD    // 最近的一次提交
--HEAD^   // 上一次的提交

没找到好用的图,随手p了个求生之路2

2021.03.27 更新

服务器配置

软件软件版本
操作系统Debian 10 (buster)
内核4.19.0-13-amd64
cpu2.59Ghz cpu*4
内存8GB
带宽5Mbps
硬盘150G 高性能云硬盘

起步

Debian

教程终默认以 root 用户执行命令
# 安装32位环境依赖
$ dpkg --add-architecture i386

# 最好还是升级一下系统
$ apt update
$ apt upgrade

Steam教程原话

Create a user account named steam to run SteamCMD safely, isolating it from the rest of the operating system. Do not run steamcmd while operating as the root user - to do so is a security risk.

最好不要使用 root 用户来运行 steamCMD

创建用户并建立存放目录

$ adduser steam   #创建一个用户叫 steam
$ passwd steam    #密码自己随意设置,我这里就 steam
$ sudo -iu steam  #这个用户在求生之路2的文件夹里没有创建文件的权限,建议切回root创建
$ mkdir steamCmd  #创建存放目录
官方的 apt install steamcmd 我是没有成功,小伙伴们可以试一下
$ cd ~/steamCmd

# 下载完成后解压文件
$ curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

运行 steamCMD 安装求生之路2

啊~

运行脚本

$ steamcmd

这个时候你就进到 steamCMD 辣

这是匿名登陆到 steam ,查看需要用户名登陆的游戏在这里找 这里这里

这里 求生之路2 支持匿名登陆,我们用匿名

# 其它用户名登陆 `login 用户名`

Steam> login anonymous

指定下载目录这一步我没做,直接默认下载在 $HOME/.steam/steamapps/common/ 里面

下载的时候最后带上 validate 效验下载的数据缺少或丢失

Steam> app_update 222860 validate

下载过程

等待安装完成......


安装完成会提示 Success! App '222860' fully installed.

输入 exitquitCtrl + CCtrl + Z 退出

配置并运行求生之路2

创建 server.cfg 配置文件

$ nano $HOME/server.cfg

输入以下内容

hostname "ohhhhhhhhhhhhhhhh"                     #主机名
sv_cheats 1                                      #开启作弊
sv_region 4                                      #我这里设置的亚洲服务器(0就是全球辣)
sv_steamgroup "27915935,1184541,1016724,628356"  #设置steam组
sv_steamgroup_exclusive 1                        #开启私有组
sv_allow_wait_command 0                          #不等待
sb_all_bot_game 1                                #留着一个电脑
sv_consistency 0                                 #mod不一样也可以一起玩
sv_search_max_ping 300                           #超过300ping就找不到我辣(前提把私有组关掉)
fps_max 72                                       #限制fps72
z_difficulty Hard                                #开启困难模式

管理员权限创建一个启动脚本

$ curl -O https://mirror.flxxyz.com/gist/flxxyz/14b5dc4080d20c685eb767067414c8dd/raw/7d202f1e204610bd9ab4a71671b54f6b3ee05f41/l4d2_start_server.sh
$ chmod +x l4d2_start_server.sh

OK,运行吧~

$ ./l4d2_start_server.sh

入门关

入门关我就不发了吧,手机锁屏,大家都懂的


第一关

step1

第一关的难点在于进到页面就是一片空白,如果无聊的同学在空白的位置拖动鼠标会发现 有一段文字,看来是把 color设置成了白色嘛,这个就简单了,F12控制台打开


输入 document.getElementsByClassName('text-panel')[0].innerHTML 就是了这段文字了
document.getElementsByClassName('text-panel')[0].innerHTML.trim() 出来是不是没有换行符和空格辣

- 阅读剩余部分 -

Python版本: 3.5.2

假设下面是我们要连接的字符串

需要连接的字符串

一. +号连接

写过 js 的应该知道


print(text[0] + text[1] + text[2])

输出


heyheyfuckworld

不考虑内存空间的话,用用没什么,数据量庞大了,内存操作频繁,很累赘的赶脚

二. 空格连接符


print(text[0] text[1] text[2])

输出


heyheyfuckworld

这个不知道为什么,有空格和没空格都能连接#笑哭,能算是python专属吗?

三. 占位符连接

别告诉不知道 c语言的 printf("%s","str");


print("%s%s%s" % (text[0], text[1], text[2]))

输出


heyheyfuckworld

四. join函数连接

其实大家推荐的就是最好用 join() 效率高


# t是要连接字符串之间的字符
t = '-'
print(t.join(text))

输出


heyhey-fuck-world

五. *号连接

这个自己找位置用把


str = 'abc'
str * 2

输出


abcabc

┑( ̄Д  ̄)┍反正我觉得没卵子用,现在用不到把,哈哈

之前在弄首页的那个视频,看到有这么个属性 w3school 上说是

preload 属性规定是否在页面加载后载入视频。如果设置了 autoplay 属性,则忽略该属性。

preload有三个值

  • auto

    当页面加载后载入整个视频
  • metadata

    当页面加载后只载入元数据
  • none

    当页面加载后不载入视频

PS: 我他娘看的一脸懵逼


于是实验了一下...

  1. auto
    这个是默认值,看出来视频没有播放但是一直在加载,大概意思就是
浏览器:服务器劳资要放视频了,赶快把视频呈上来,赶紧的,用户等着呢!
服务器:李奶奶,等着马上把文件信息和视频都给你~
浏览器:不够,再来点
服务器:拿着滚
浏览器:OK~

auto.png

差不多就是这个样子,感觉做实时性的时候用的。

  1. metadata
浏览器:服务器劳资要放视频了,赶快把视频呈上来,赶紧的,用户等着呢!
服务器:李奶奶,等着马上把文件信息给你~
浏览器:视频开始播了,要播了,快把视频给我,快!
服务器:给你,拿去,正在发
浏览器:OK~

metadata.png

  1. none
浏览器: ...
服务器: ...

none.png