Crawler
“Crawler”抓取站点的页面,并取走在上面找到的文件。本页介绍它认得的站点、它在其他任何站点上读得懂的页面种类、它可以走到哪里和保留什么、何时使用浏览器、怎样对待站点,以及运行前您先查看的页面。
它认得的站点
Crawler 为少数几个站点准备了配方:配方说明站点把文件放在哪里,以及怎样逐页翻看。在这些站点上,向导会选中 Crawler,也不会询问页面的种类。
| 站点 | Crawler 在那里取什么 |
|---|---|
| 500px | 摄影师、信息流(例如热门照片)、图库、照片故事或单张照片;长边不超过 2048 像素 |
| Bing 图片 | 图片搜索结果 |
| Flickr | 照片流、相册、收藏、群组照片池、标签、Explore、单张照片或搜索;只有作者允许下载时才取原图,否则取现有的最大尺寸 |
| Google 图片 | 图片搜索结果 |
| IMDb | 影片、人物或图库 |
| 子版块或帖子 |
Bing 图片和 Google 图片通过浏览器读取。在 Google 图片上运行之前,搜索页面会先打开供您查看,参见运行前您先查看的页面。
对于 IMDb,向导会询问“下载图片”和“下载视频”;IMDb 最多只提供 100 个视频。向导还会显示“IMDb 对其数据的使用规定了条件。”只有勾选“我已阅读”后,才能创建项目。
对于 Reddit,向导会显示已经填好的“Reddit 应用 id”。Reddit 只响应已注册的应用;如果碰到它的限制,就在 reddit.com/prefs/apps 注册一个您自己的应用,类型选 installed app,然后把它的 id 填入“Reddit 应用 id”。
其他任何页面
在它不认得的站点上,Crawler 的卡片上写着“在任何页面上都能用,但对这个站点没有专门的了解”。选择 Crawler 后,向导会询问“文件从哪里来?”任何选项都不会预先选中:页面是什么,只有您知道。
| 选项 | 含义 |
|---|---|
| 只要这一个页面 | 您给出的地址上链接的文件,不再往下走 |
| 图库或相册 | 一个带着一组图片的页面 |
| 论坛主题 | 一个主题,连同帖子里的附件和图片 |
| 整个站点,或者它的一部分 | 默认只包括您给出的地址和它下面的内容 |
接着,“文件种类”会询问要“下载”什么:“图片”(默认勾选)、“视频”、“音频”、“文档”和“压缩包”。如果一个文件的种类从它的地址和站点的响应中都看不出来,它照样会被取走。
除了下面要讲的“这次可以走到哪里?”,向导不再询问别的;每个选项的其余设置都在项目的“站点设置”中。
它可以走到哪里
对于“整个站点,或者它的一部分”,向导还会询问“这次可以走到哪里?”它按从窄到宽的顺序列出范围,您选中的那一行的模式覆盖什么,任务就包括什么。对于 https://example.com/gallery/7/,这几行是 example.com/gallery/7/*、example.com/gallery/*、example.com/* 和 *.example.com/*(整个站点连同它的子域名)。
项目“站点设置”中的“地址”包含其余的设置:
- 附加地址 - 每行一个地址模式,例如
site.com/gallery/*。与它们匹配的链接也属于这次任务;在向导中选中的那一行作为第一行保存在这里。 - 例外 - 抓取不会进入的地址的模式,不管它是怎样被引向这些地址的。它们优先于上面的地址。
- 距起点的步数 - 抓取从地址出发最远能走多远:每跟进一个链接算一步,默认 3 步,最多 20 步。翻到同一个列表的另一页不算步数,取文件也不算。
- 外部链接 - 通向任务之外的链接:“忽略它们”、“只从它们那里取文件”(默认)或“跟进页面并取走文件”。
- 允许的外部地址 - 抓取可以走出去的地方;默认的
*表示任何地方。 - 哪些地址是文件 - 每行一条规则,例如
site.com/get-image/* = pictures,适用于返回图片的脚本,或者没有扩展名的下载链接。 - 跟进规则 - 您自己为链接设定的条件,形式为“满足以下条件时不去”或“只在满足以下条件时去”。
“文件夹”中的“保留站点自己的文件夹”会按站点的方式存放所有文件:先是主机名,再是地址中的各级文件夹。它默认关闭,所有文件都放在一起。
它保留什么
项目“站点设置”中的“筛选”:
- “最小大小”和“最大大小”,以字节为单位;0 表示不限制。站点没有说明大小的文件照样会被取走。对于“论坛主题”,最小大小的初始值是 20480 字节:在帖子里,头像、表情和等级徽章也都是普通图片。
- “最小宽度”和“最小高度”,以像素为单位。图片的尺寸记录在文件内部,所以要在取回之后才能判断:不符合的图片会被删除,日志里会写明。
- 保留规则 - 您自己为文件设定的条件,形式为“满足以下条件时不要”。
对于“只要这一个页面”,“筛选”中还有“哪些地址是文件”:从这个页面出发不会跟进任何链接,所以只能从站点的响应中看出种类的地址,根本不会被请求。
对于“图库或相册”,“翻页”中有“同一个列表的页数”:同一个列表要抓取多少页。默认值 0 表示全部,适合相册,却不适合没有尽头的信息流。
它何时使用浏览器
有些站点用脚本生成页面,没有浏览器,页面上就什么也找不到。项目“站点设置”的“浏览器”中,“使用浏览器”可以是“自动决定”、“是”或“否”。由 Crawler 自己决定时,它会用两种方式分别读取每个站点的第一页,保留找到更多内容的那一种;日志会写明选了哪一种,并给出两边的数字。浏览器要慢几十倍。
页面上什么也没找到时,日志会写“… 上什么都没找到,这个页面可能需要浏览器”。
礼貌
项目“插件设置”中的“礼貌”决定 Crawler 怎样对待站点:
- 两次请求之间的秒数 - 一次运行中任意两次请求之间的停顿,不论请求发往哪些站点,默认 1 秒,最多 60 秒。停顿越短,站点就越可能开始拒绝请求,或者把您拒之门外;设为 0 是让您的 IP 地址被封的最快办法。参见运行保持的节奏。
- 保留页面 - 保存读取过的每个页面,这样配方编辑器就能在这些页面上重复一次运行,而不必再访问站点。默认开启。
- 使用配方 - 在 Crawler 认得的站点上,按该站点的配方进行。关闭后,就按普通方式抓取站点。默认开启。
- 识别图床 - 把指向图床的链接当作一张图片来读,只是前面多隔了一跳。如果某个图床改了页面,取回来的是广告而不是图片,就值得把它关掉。默认开启。
Crawler 同时取两个文件,这是所有站点合起来的数目。站点要求放慢时,Crawler 就会放慢,日志会写“… 要求我们放慢,已经减速。秒数: …”。
运行前您先查看的页面
有些站点需要您先手动做点事:登录、通过检查,或者缩小搜索范围。同样位于“礼貌”中的“运行前先显示页面”决定起始页面何时打开:
- 从不 - 运行立即开始。
- 站点需要时 - 默认值。在配方注明需要您参与的站点上打开页面,例如 Google 图片。
- 总是 - 项目的每个地址都会打开页面;对于模式,只在它的第一个地址打开一次。
页面会在名为“下载开始前请确认”的窗口中打开并等待。完成站点要求的操作,然后点击“继续”:运行会从您最后停留的页面开始,所以在搜索页面上,您输入的查询和设置的筛选条件都会保留。“取消”则让运行在开始之前就停下。
在向导的最后一步勾选“这个站点要我先登录”,就会设为“总是”。
修复解析器
在 NeoDownloader 窗口里,项目的“属性”标签页上有一张卡片,提供“修复解析器”:它会针对项目最近一次运行打开配方编辑器,定位到开始一无所获的那一步。编辑器还处于实验阶段。打开之前,NeoDownloader 会提醒“配方编辑器还没有做完”,并说明编辑器不一定能修好这次运行。