<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>深层思考 on 我的博客</title>
    <link>https://myblog-aya.pages.dev/tags/%E6%B7%B1%E5%B1%82%E6%80%9D%E8%80%83/</link>
    <description>Recent content in 深层思考 on 我的博客</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sun, 26 Jul 2026 10:50:02 +0800</lastBuildDate>
    <atom:link href="https://myblog-aya.pages.dev/tags/%E6%B7%B1%E5%B1%82%E6%80%9D%E8%80%83/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>核心思想-关于爬虫</title>
      <link>https://myblog-aya.pages.dev/posts/about-spider/</link>
      <pubDate>Sun, 26 Jul 2026 10:50:02 +0800</pubDate>
      <guid>https://myblog-aya.pages.dev/posts/about-spider/</guid>
      <description>&lt;h1 id=&#34;引言&#34;&gt;引言&lt;/h1&gt;
&lt;p&gt;我写爬虫也有几年了，大大小小的文章看了也有很多，但是我发现，很多的文章都是侧重于具体技术的，比如怎么才能去绕过验证码，怎么换ip池子之类。但是很少有文章写爬虫背后深层次的思想。今天就想要来简单探讨一下，当然，为了防止一些人看不懂，我会列举具体例子说清楚。&lt;/p&gt;
&lt;h1 id=&#34;声明&#34;&gt;声明&lt;/h1&gt;
&lt;p&gt;因为外界普遍对爬虫的误区（爬虫会进监狱之类），本人讲述的这些思想只能用于技术交流，不要用于任何的违法犯罪目的！本人不承担任何责任！&lt;/p&gt;
&lt;h1 id=&#34;核心思想1---不要硬拼顺着来&#34;&gt;核心思想1 - 不要硬拼，顺着来！&lt;/h1&gt;
&lt;p&gt;这条可以说，是最重要的一条爬虫思想了！可以说，从网页端js分析的时候远程rpc调用，到拿无头浏览器绕过验证的使用，都在体现这一条思想！&lt;/p&gt;
&lt;p&gt;举个例子来说吧，就好比，有个机密的地方，它只允许女生进去，但是你是男生，想从里面拿东西，怎么办？自己女装吗？实际上你女装的再厉害，也肯定会被发现一些端倪，比如声音啊，身高啊，骨架啊之类的，即使你有能力把这些都消除了，也很容易在一些细枝末节的地方暴露你的男生身份！&lt;/p&gt;
&lt;p&gt;这时候，要采取的核心办法就是，既然你必须女生进去，&lt;strong&gt;那我就直接找一个真正的女生进去&lt;/strong&gt;，但是，我进去之前，告诉女生我要拿的东西是什么，让女生进去以后给我拿出来，这样，你再怎么检测，也是完全合法的女生，因为&lt;strong&gt;这就是女生&lt;/strong&gt;！但是我那东西的目的却拿到了。&lt;/p&gt;
&lt;p&gt;写爬虫的时候也是一样的道理，比如有的网站，检测你浏览器环境，看你浏览器不对劲就不给你看，那我直接，拿一个真正浏览器看，但是我偷偷远程操控它，让它记录下来所有内容，就可以完成爬取。&lt;/p&gt;
&lt;p&gt;同样，有的网站，用复杂加密来阻挡你的爬虫，但是，为什么要死磕这些函数？你反正都知道他们在哪里了，&lt;strong&gt;直接远程给python调用不就好了？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这条思想，核心意义就是，&lt;strong&gt;面对很多网站的限制，不要硬拼，应该顺应它们的限制，在允许限制的情况下，用合适的手段带上自己的目的&lt;/strong&gt;，就可以完成爬取了。&lt;/p&gt;
&lt;h1 id=&#34;核心思想2---细节决定你的成败&#34;&gt;核心思想2 - 细节决定你的成败！&lt;/h1&gt;
&lt;p&gt;这条思想，同样也很重要，如果说第一条是说的基础，那第二条就是很多人爬虫被发现的陷阱。&lt;/p&gt;
&lt;p&gt;很多的新人都会犯这种错误，就是，网站的请求，只要改UA头，就可以爬取，那我请求就带上一个UA头，其他的我一律不拿。实际上这种做法很危险，尤其是你请求量很大的时候，如果网站管理员查看日志，发现有很多的ip，都是只有UA的请求，他肯定会觉得，这十分有十五分不对！因为一个正常浏览器，发送请求的时候，除了UA头，还会带上一些其他的头，比如Cookie啊之类的。&lt;/p&gt;
&lt;p&gt;再列举一个具体例子就是，你上课偷偷吃零食，结果别人都是一小口吃进去，就你是当着老师面一大口吞进去嚼，那肯定老师会发现你的。&lt;/p&gt;
&lt;p&gt;这里说的细节至少包括下面几个方面：&lt;/p&gt;
&lt;h2 id=&#34;细节1-请求内容和请求头的细微参数差别&#34;&gt;细节1 请求内容和请求头的细微参数差别&lt;/h2&gt;
&lt;p&gt;对于http协议来说，一般请求会包含一些看上去很冷门，毫无意义的请求头和请求内容，这时候，为了能够尽量像真实请求，你&lt;strong&gt;千万不要&lt;/strong&gt;忘记加上这些参数！因为正常的浏览器，也是有这些参数的，如果不能尽量地模拟真实浏览器请求，就很很容易被发现！&lt;/p&gt;
&lt;h2 id=&#34;细节2-单个ip或者设备的请求频率差别&#34;&gt;细节2 单个ip或者设备的请求频率差别&lt;/h2&gt;
&lt;p&gt;这个就更好理解了，一个ip或者设备，一秒里面请求了1145141919810次某个接口，这一看就是十分有十五分不对！所以一定要控制好自己的单个ip或者设备的并发，最好设置成随机延时，加上5到8的并发，这样才能均衡好爬取效率和安全性。&lt;/p&gt;
&lt;h2 id=&#34;细节3-行为上的差别&#34;&gt;细节3 行为上的差别&lt;/h2&gt;
&lt;p&gt;这个一般适用于那些风控极其严格的网站，这些网站往往引入了基于&lt;strong&gt;机器学习&lt;/strong&gt;的风控引擎，用来智能地分类出爬虫用户。针对这种网站，除了上面说的那两条，还要注意一些更加细致入微的&lt;strong&gt;行为细节&lt;/strong&gt;，比如，两次关键请求的顺序，是否请求了css和js资源（大多数爬虫不会请求这些无用资源），是否是高风险ip（比如某些多人共用的代理），是不是疑似大量遍历（比如大量地从目录里面抓取关键图片），是不是频繁登录退出（尤其你要用好几个账户的时候），是不是每次请求都会频繁更换ip（这一秒在美国，下一秒又到了德国）。针对这些网站，往往需要你仔细观察，先拿一部分账户探测出它们的风控逻辑，在探测成功以后，才能够接着针对性地修改爬取逻辑，拿到自己想要的数据。&lt;/p&gt;
&lt;h1 id=&#34;核心思想3---融入群体不要成为特类&#34;&gt;核心思想3 - 融入群体，不要成为特类！&lt;/h1&gt;
&lt;p&gt;这一条非常重要！可以说，很多小白都会栽在这里！因为很多人有一个&lt;strong&gt;非常错误&lt;/strong&gt;的想法，就是认为，只要我每次请求的时候，都让设备参数随机（比如每次都随机UA头），让ip随机（比如这一秒在日本，下一秒跑到美国，你是在坐火箭吗？），就可以不被发现，实际上这种想法&lt;/p&gt;
&lt;h3 id=&#34;大错特错&#34;&gt;大错特错!!!&lt;/h3&gt;
&lt;p&gt;因为很多时候，你随机成为了特类，反而会让你更加容易被发现！这就好像，大街上别人都是黑色衬衫加白色裤子，就你穿个五颜六色的衣服，花里胡哨地走大街上，那肯定会第一时间注意到你！&lt;/p&gt;
&lt;p&gt;所以，真正的策略是，每次都是固定参数，同一个ip或者地理相近的ip，但是我通过多个不同的设备&lt;strong&gt;组成池子&lt;/strong&gt;，同时进行爬取，这才是正解！&lt;/p&gt;
&lt;h1 id=&#34;尾声&#34;&gt;尾声&lt;/h1&gt;
&lt;p&gt;写完这篇博文，我知道还有一部分缺失的内容，但是后面缺少的内容，想到哪里再往上补充吧。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
