查看原文
其他

电子书网站只能下 5 本书,有办法解决吗?

奔跑中的奶酪 奔跑中的奶酪 2022-10-06


上网时经常会遇到这样的情况。
就是如果你不是会员,又或者没有登陆,那么每天最多只能下载 5 个内容。

想要继续下载就要再等个 24 小时。
有没有办法解除这样的限制?
有!

而且,奶酪今天不单单要告诉你办法,还要告诉你它的原理。

那就是“浏览器消息头”



01


浏览器消息头


浏览器消息头是什么?
浏览器消息头的原名是 HTTP Header,来源于 HTTP 协议

HTTP Header 可以看作是给客户端和浏览器的“附言”
它的作用,是类似于食品包装上的“配料表”。

HTTP 消息头,可分为请求头响应头
当你按下快捷键 F12,你就可以看到网页的请求头和响应头。
Firefox 浏览器:

Chrome 浏览器:





02


自定义消息头


也就是说,通过修改“请求头”和“消息头”,我们可以指定浏览器的返回结果。

1.1、修改方法


修改扩展推荐 Header Editor
它不但支持多个浏览器,支持多种消息头类型,而且还支持“自定义函数”,这让它的功能变得十分强大。



1.2、正则表达式


不过,想要用好 Header Editor,那你就需要知道“正则表达式”。
正则表达式说难也难,说简单与简单。
下面是我总结的一些常用的正则表达式。

知道了这些,你也就算是入门“正则表达式”了。

字符使用
.匹配任意一个字符。
*前面的字符出现 0 次或无限次,即可有可无。
+前面的字符出现 1 次或无限次,即最少一次。
?前面的字符出现 0 次或 1 次,即要么不出现,要么只出现一次。
^字符串开头。
$字符串结尾。
( )字符分组,匹配括号内的表达式,即表示为一组。
|或运算符,匹配符号前面或后面的字符。
\转义字符,用于匹配一些保留的字符,比如 [ ] ( ) . * - + ? ^ $ \ |
注:斜线  /  无须转义,替换结果也不需要转义。
$1匹配正则表达式里小括号内容, $1 为第一组,$2 为第二,以此类推。

更详细正则可参考:


https://github.com/ziishaned/learn-regex




03


规则分享


下面我们以一些实际的案例来讲解规则应该怎么写。

3.1、网页重定向


比如蓝奏云的链接 lanzous.com 已无法打开,而 lanzouv.com 可以正常打开。

我们可以给它写一个重定向规则。
编写方法:

具体代码:

名称:蓝奏云链接 zous >> zouv规则类型:重定向请求匹配类型:正则表达式匹配规则:^https?://(.*)\.lanzous\.com/(.*)执行类型:常规重定向至:https://$1.lanzouv.com/$2

3.2、限制重定向条件


一些链接重定向,如果设置的是全局环境,那么有可能会导致网页无法显示。
比如小红书的图片,当打开时,浏览器默认是直接下载。
https://ci.xiaohongshu.com/a080a2eb-beb6-1401-4789-e63b3182328e?imageView2/2/w/540/format/jpg
我想用“图片缓存服务网站
https://images.weserv.nl/?url=
 来让图片在浏览器中预览。

如果是用上面的重定向规则,那么会导致小红书网页的图片无法显示。

这里我们需要用“自定义函数”来解决。
设置仅当图片在地址栏打开时才启用规则。

具体代码:

if (detail.type === "main_frame") { return val.replace("https://safe-img.xhscdn.com", "https://images.weserv.nl/?url=https://safe-img.xhscdn.com");}


3.3、网页去跳转


现在很多网站都会有“站外链接跳转”,需要“二次点击”才能访问,特别影响浏览体验,我们以知乎为例。
编写方法:

具体代码:

名称:知乎去跳转规则类型:重定向请求匹配类型:正则表达式匹配规则:^https?://link\.zhihu\.com/\?target=(.*)执行类型:常规重定向至:$1

3.4、图片反盗链


一些网站会设置自己的图片不能在站外显示。
这其实是请求头 referer 的问题。

只需要修改将网站的 referer 设置为空,又或者设置为该网站的根域名即可。



3.5、网站首选语言


一些网站会提供多种语言,但默认会匹配浏览器的语言。
而如果你的浏览器是中文,但又想网站优先展示英文的话,那么可以通过修改请求头 accept-language 来实现。



3.6、修改浏览器 UA


修改浏览器 User-Agent 是一个常用的操作。
一般分为“全局 UA 修改”和“网站 UA 修改”。

全局 UA 修改会影响所有网站,网站 UA 修改,则只影响部分网页。
全局 UA 修改:

网站 UA 修改:



3.7、修改访问 IP


网站 Z-library 有每天 5 本书的下载限制。
想要下载则需要再等个 24 小时。

通过消息头 x-forwarded-for 可以修改访问 IP,由此绕过 IP 检测。

百度搜索“IP”,可查看你当前的 IP。

然后把 IP 输入到“头内容”,然后随意修改其中的一个数值。

只需要数值在 0~255 之间即可。

3.8、修改响应头


在文章《S04-多重搜索》中,奶酪分享了一个多重搜索技巧。
但百度、谷歌不允许通过 iframe 框架来将内嵌到网页,好在修改响应头 x-frame-options 可以解决。
只需要将“头内容”修改为 ALLOWALL 即可。

启用前的效果:

启用后的效果:



结尾


值得一说的是。

浏览器消息头的权限很高,请不要随意使用来路不明的规则。

如果你有什么其它的自定义需求。

你可以在评论区留言,我会尽可能的帮你写规则。

最后,

回复关键字 i39,可获取奶酪的所有规则。


回复关键字
i
查看本系列的所有文章,
回复关键字
 i39
获取本文提到的所有资源

近期文章:


专栏介绍:



看完文章:

1、点在看,帮助更多的人看到这篇文章。
2、写留言,对文章进行评论,我会尽可能回复。
3、点关注,关注我并星标,第一时间获取更新。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存