全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: 唐王李世民

PHP无法获取网页源码的问题

[复制链接]
发表于 2021-7-7 20:43:58 | 显示全部楼层
不要随便在网上复制代码后就直接运行,每个网站的http request header都不一样,如果没有反爬虫机制,又不需要鉴权,那就可以。如果有哪怕一点点的反爬虫机制,你复制的代码就没有办法得到你预期的效果了。
 楼主| 发表于 2021-7-7 20:44:01 | 显示全部楼层
xuliliang 发表于 2021-7-7 20:43
做了反爬虫拦截吧,反向操作就行了

  骄傲的说一句,不懂

谢谢您了
发表于 2021-7-7 20:44:13 | 显示全部楼层
唐王李世民 发表于 2021-7-7 20:38
cookies是指定一个就可以了吗? 谢谢您了

不是,进页面的时候会到无感知盾,这边加载一个cookie然后302到真实的页面,你要取的是这个cookie
 楼主| 发表于 2021-7-7 20:46:24 | 显示全部楼层
解憂雜貨店 发表于 2021-7-7 20:43
不要随便在网上复制代码后就直接运行,每个网站的http request header都不一样,如果没有反爬虫机制,又不 ...

谢谢,明天我改了试一试。
 楼主| 发表于 2021-7-7 20:47:24 | 显示全部楼层
kosuo 发表于 2021-7-7 20:44
不是,进页面的时候会到无感知盾,这边加载一个cookie然后302到真实的页面,你要取的是这个cookie ...

应该如何取cookies呢?谢谢您了
发表于 2021-7-7 20:48:26 | 显示全部楼层
唐王李世民 发表于 2021-7-7 20:47
应该如何取cookies呢?谢谢您了

浏览器进到正常首页,在header里就有,直接复制用就行
 楼主| 发表于 2021-7-7 20:49:51 | 显示全部楼层
kosuo 发表于 2021-7-7 20:48
浏览器进到正常首页,在header里就有,直接复制用就行

好的,谢谢您了
发表于 2021-7-7 20:59:10 | 显示全部楼层
西瓜的需要referer,而且请求是个ajax地址才可以获取到作品列表。。。
我这几天 准备写个西瓜视频监控的软件 。。。
发表于 2021-7-7 21:22:54 | 显示全部楼层
下面是仅仅带UA访问返回的内容,从内容可以看出关键代码就是生成__ac_signature、__ac_nonce等cookie后然后跳转,只是单纯的做了简单的防爬 ,你只要把这个cookie生成逻辑弄懂完全可以用PHP模拟生成出来!


  1.                               function _f1(e, t) {
  2.                                              if ("string" != typeof t) return;
  3.                                              var o, n = e + "=",
  4.                                                             r = t.split(/[;&]/);
  5.                                              for (var e = 0; e < r.length; e++) {
  6.                                                             for (o = r[e];
  7.                                                                            " " === o.charAt(0);) o = o.substring(1, o.length);
  8.                                                             if (0 === o.indexOf(n)) return o.substring(n.length, o.length)
  9.                                              }
  10.                                              return ""
  11.                               }

  12.                               function _f2(e) {
  13.                                              return _f1(e, document.cookie)
  14.                               }

  15.                               function _f3(e, t, o) {
  16.                                              try {
  17.                                                             o && (window.sessionStorage && window.sessionStorage.setItem(e, t), window.localStorage && window.localStorage.setItem(e, t));
  18.                                                             var n = 31536e6;
  19.                                                             document.cookie = e + "=; expires=Mon, 20 Sep 1970 00:00:00 UTC; path=/;", document.cookie = e + "=" + t + "; expires=" + new Date((new Date).getTime() + n).toGMTString() + "; path=/;"
  20.                                              } catch (e) {}
  21.                               }
  22.                               window.byted_acrawler.init({
  23.                                              aid: 99999999,
  24.                                              dfp: !0
  25.                               });
  26.                               var __ac_nonce = _f2("__ac_nonce"),
  27.                                              __ac_signature = window.byted_acrawler.sign("", __ac_nonce);
  28.                               _f3("__ac_signature", __ac_signature), _f3("__ac_referer", document.referrer || "__ac_blank", !0);
  29.                               try {
  30.                                              sessionStorage.setItem("__ac_ns", performance.timing.navigationStart)
  31.                               } catch (e) {};
  32.                               window.location.reload();
复制代码
发表于 2021-7-7 23:29:13 | 显示全部楼层
ighook 发表于 2021-7-7 21:22
下面是仅仅带UA访问返回的内容,从内容可以看出关键代码就是生成__ac_signature、__ac_nonce等cookie后然后 ...


那么问题来了,怎么把cookie生成逻辑的函数改成php来实现呢?
我在采集另一个网站的时候也遇到同样的问题,后来我用headerless浏览器去运行cookie生成的相关js代码,获取跳转后的url,再用php去抓取这个url,不过这样比较麻烦也比较慢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-9 05:56 , Processed in 0.060360 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表