该笔记整理:与 Scrapy 有关的杂记,及某些技术的概述。
执行带有 Javascript 的页面
Scraping Javascript Web Page With Scrapy + Splash How can we execute javascript in scrapy? Splash – A javascript rendering service Scrapy & JavaScript integration through Splash
页面元素选择器
Scrapy/Docs » Selectors
在使用 Scrapy 抓取网页时,需要执行的最常见任务是从 HTML 源中提取数据,这可以使用 BeautifulSoup 或 lxml 模块。
除此之外,Scrapy 带有自己的提取数据机制。这里将简单整理在 Scrapy 中用于提取网页中的数据的选择器。
与 CSS 中的选择器有些类似,在 Scrapy 中,有两种选择器: 1)XPath – XML Path Language (XPath) 2)CSS – Selectors Level 3[……]
「Scrapy」- 杂记
「httrack」
软件包简介
HTTrack,用于将web站点复制到本地,离线浏览器工具。
HTTrack是一个离线浏览器实用工具,可将Web站点下载到本地目录,并递归构建所有目录,从服务器获取html、图像、其他文件到计算机中。
HTTrack按原始站点的相对链接结构进行组织。只需在浏览器中打开“镜像”中的一个网页,就可以从链接到链接浏览网站,就像在线查看一样。HTTrack还可以更新现有的镜像站点,恢复中断的下载。
HTTrack是完全可配置的,并具有集成的帮助系统。
安装HTTrack
从发行版的源中安装
#!/bin/bash
# Kali GNU/Linux Rolling
apt-get install httrack
使用源码编译安装 参考源码目录下的INSTALL文件。
安装的可执行程序
httrack 主程序文件,复制站点到本地。
常用命令
httrack www.someweb.com/bob/
复制www.someweb.com/bob/,而且只复制该站点。
httrack www.someweb.com/bob/ www.anothertest.com/mike/ +*.com/*.jpg -mime:application/*
将两个站点(使用共享链接)一起镜像,并保存所有出现在.com的站点上的.jpg文件。
httrack www.someweb.com/bob/bobby.html +* -r6
从bobby.html开始,获取所有的文件,连接深度为6,有可能到达网站的所有地方。
httrack www.someweb.com/bob/bobby.html –spider -P proxy.myhost.com:8080
在指定的站点上运行Spider,并使用代理。
httrack –update
更新当前目录中的镜像。
httrack
进入交互模式,然后填写相关的参数。
httrack –continue
在当前目录中,继续对网址进行镜像复制。
参考文献
Homepage: http://www.httrack.com
Github Repo: https://github.com/xroche/httrack
ChangeLog: https://github.com/xroche/httrack/blob/master/history.txt
FORUM: https://forum.httrack.com/
Documentation: http://www.httrack.com/html/index.html[……]
「0.httrack」
httrack,复制某个站点到本地。
命令行语法格式(SYNOPSIS)
httrack [ url ]… [ -filter ]… [ +filter ]… [ -O, –path ] [ -w, –mirror ] [ -W, –mirror-wizard ] [ -g, –get-files ] [ -i, –continue ] [ -Y, –mirrorlinks ] [ -P, –proxy ] [ -%f, –httpproxy-ftp[=N] ] [ -%b, –bind ] [ -rN, –depth[=N] ] [ -%eN, –ext-depth[=N] ] [ -mN, –max-files[=N] ] [ -MN, –max-size[=N] ] [ -EN, –max-time[=N] ] [ -AN, –max-rate[=N] ] [ -%cN, –connection-per-second[=N] ] [ -GN, –max-pause[=N] ] [ -cN, –sockets[=N] ] [ -TN, –timeout[=N] ] [ -RN, –retries[=N] ] [ -JN, –min-rate[=N] ] [ -HN, –host-control[=N] ] [ -%P, –extended-parsing[=N] ] [ -n, –near ] [ -t, –test ] [ -%L, –list ] [ -%S, –urllist ] [ -NN, –structure[=N] ] [ -%D, –cached-delayed-type-check ] [ -%M, –mime-html ] [ -LN, –long-names[=N] ] [ -KN, –keep-links[=N] ] [ -x, –replace-external ] [ -%x, –disable-passwords ] [ -%q, –include-query-string ] [ -o, –generate-errors ] [ -X, –purge-old[=N] ] [ -%p, –pre‐ serve ] [ -%T, –utf8-conversion ] [ -bN, –cookies[=N] ] [ -u, –check-type[=N] ] [ -j, –parse-java[=N] ] [ -sN, –robots[=N] ] [ -%h, –http-10 ] [ -%k, –keep-alive ] [ -%B, –tolerant ] [ -%s, –updatehack ] [ -%u[……]
「网络爬虫」- 杂记
Headless Chrome
Getting Started with Headless Chrome Access https web page via Firefox/Chrome from command line
处理 HTML 标签
Python code to remove HTML tags from a string[……]
「vsftpd.conf」
vsftpd.conf,vsftpd的配置文件。
配置文件描述
该配置文件用户控制vsftpd的行为。默认在/etc/vsftpd.conf查找该文件。可以在命令行中以参数的形式指定配置文件。此行为非常有用,因为你可能会使用高级的inetd(如xinetd)在每个虚拟主机的基础上启动具有不同配置文件的vsftpd。
配置文件格式
井号(#)开始的行为注释行,会被忽略。
指令的格式为:
option=value
警告:option,=,value这三者之间是不能由空格的。
每个设置都有默认值,可以在配置文件中进行修改。
布尔值选项
ascii_upload_enable When enabled, ASCII mode data transfers will be honoured on uploads.
默认值: NO
ascii_download_enable When enabled, ASCII mode data transfers will be honoured on down‐ loads.
默认值: NO
async_abor_enable When enabled, a special FTP command known as “async ABOR” will be enabled. Only ill advised FTP clients will use this feature. Additionally, this feature is awkward to handle, so it is disabled by default. Unfortunately, some FTP clients will hang when can‐ celling a transfer unless this feature is available, so you may wish to enable it.
默认值: NO
background 启用时,vsftpd以“监听”模式启动,即在后台运行。 默认值: NO
check_shell Note! This option only has an effect for non-PAM builds of vsftpd. If disabled, vsftpd will not check /etc/shells for a valid user shell for local logins.
默认值: YES
chmod_enable When enabled, allows use of the SITE CHMOD comm[……]
「GVRP」- GARP VLAN Registration Protocol
问题描述
很多网络协议(比如 RIP BGP 等等),都是用来传递网络拓扑信息的,以降低维护和配置的复杂度。
解决方案
通用属性注册协议(GARP – Generic Attribute Registration Protocol),它为处于同个交换网内的交换机之间提供了一种分发、传播、注册某种信息(VLAN 属性、组播地址等)的手段。
GVRP 并不是个协议,而是个协议框架。Huawei GVRP、Cisco VTP 才是 GARP 的实现,才是实际在交换机中运行的协议。
应用场景
GVRP(GARP VLAN Registration Protocol),是 GARP 的一种具体应用或实现,主要用于维护设备动态 VLAN 属性。通过 GVRP 协议,一台交换机上的VLAN 信息会迅速传播到整个交换网络 GVRP 实现 LAN 属性的动态分发、注册和传播,从而减少了网络管理员的工作量,也能保证 VLAN 配置的正确性。
原理简述
GARP 通过在交换机之间交互 GARP 报文来注册、注销、传播交换机属性;
消息类型:GARP Join / GARP Leave / GARP Leval All
当某个 Switch 希望其他 Switch 注册自己的属性信息时,将对外发送 Join 消息。
当某个 Switch 希望其他 Switch 注销自己的属性信息时,将对外发送 Levae 消息。
当某个 Switch 发送 Leave All 消息时,将注销其他交换机上与该交换机有关的所有属性。
报文格式
GARP PDU 消息以列表的形式来承载属性。
参考文献
Multiple Registration Protocol – Wikipedia GVRP – The Wireshark Wiki[……]
「CPU」- 常见问题
处理器正常温度
Safe CPU Temps: How Hot Should My CPU Be? What Temperature Should CPU Be And What is Normal Temperature?
不同处理器,正常温度也不同。
对于 Intel 处理器(参考值): 1)40 – 45,是在空闲情况下的温度; 2)85 – 95,是在满载情况下的温度;
所以,对于我们的 Intel 处理器,温度 85 是我们的警戒线。如果长时间超过这个问题,我们会考录机器的散热是否存在问题。
MHRD
CPU 的工作原理是什么?
是 Steam 上的游戏,让我们从最基础的 NAND 门开始,用代码描述出 CPU 电路结构,以理解 CPU 原理。[……]
「FVWM」- 截图
[……]
「Linux」- 在命令行下导出 PDF 书签
导出PDF的书签
使用「pdftk-java」可以导出PDF文件中的书签。
安装该命令
#!/bin/sh
################################################################################
# Debian
################################################################################
apt-get install -y pdftk pdftk-java
执行导出命令
如下如下命令导出PDF文件的书签:
#!/bin/sh
pdftk ‘/path/to/file.pdf’ dump_data_utf8 output output.txt
# 上述名的输出结果中还包含了层级等信息。如果只需要书签:
pdftk ‘/path/to/file.pdf’ dump_data_utf8 output /dev/stdout \
| grep BookmarkTitle | sed ‘s/BookmarkTitle: //’
该命令将PDF文件file.pdf中的书签导入到output.txt文件。因为书签中包含了中文,所以使用到了dump_data_utf8选项,而不是dump_data选项。
更多的内容可以参考「PDF Labs」中的介绍。
参考文献
PDF Labs/How to Export and Import PDF Bookmarks[……]