postman 出现Enable JavaScript and cookies to continue 如何反爬(js反爬)

发布时间 2023-11-23 19:14:16作者: 学不会xuebuhui

网页无法F12,禁止调试出现debug怎么办

直接F8禁用,ctrl+F8开启调试断点
网站禁止ip访问,并且关闭了icmp回包,调试最好禁用缓存,以便实时更新
image

image
用postman单独访问首页的index的首页也是无法获取网页内容
image
考虑网页使用js进行跳转
实例:

比如使用postman请求https://www.phind.com/
image

简单来说,就是html文件中包含cookie设置和动态跳转网址的js代码,访问这个网页时js会设置cookie然后重定向到另一个网页,所以只是get这个url是不行的。
同理,如果清除cookie,在浏览器中f12,然后按f1禁用js,也会出现postman请求放回的内容

网页检查禁用 JavaScript

若要关闭 JavaScript,请:

若要打开 DevTools,请右键单击网页,然后选择“ 检查”。 或者,按 Ctrl+Shift+I (Windows、Linux) 或 Command+Option+I (macOS) 。 DevTools 随即打开。

按 Ctrl+Shift+P (Windows、Linux) 或 Command+Shift+P (macOS) 打开 命令菜单。
image
image
js格式化工具
https://coding.tools/cn/javascript-beautifier

实现抓取的过程如下:

先get之前能得到的带有js的html。

将其中的js代码正则提取出来。

将里面的atob替换为window["atob"],增加window对象,函数getURL()返回window["location"],即跳转的链接尾缀。

将这个修改后js代码执行,得到尾缀,与原URL链接,得到重定向的URL。

还有就是cookie问题,直接用requests的session处理就好。(会话保持,保持cookie)
image

补充:

cookie转换成字典

def convert_cookies_to_dict(cookies):
    cookies = dict([l.split("=", 1) for l in cookies.split("; ")])
    return cookies
## get网页
## 方式一
import requests
requests.get(url="",headers=dict_header,cookies=dict_cookie)
## 方式二
requests.request(mehod="get/post")

使用help方法可以查看函数的用法和参数类型
image

从浏览器f12获取get的cookie
image
使用函数抓换
image
这里的网站使用了cloudflare的反爬
image
解决办法。使用一个docker去处理绕过cloudflare验证

docker run -d \
  --name=flaresolverr \
  -p 8191:8191 \
  -e LOG_LEVEL=info \
  --restart unless-stopped \
  ghcr.io/flaresolverr/flaresolverr:latest

把请求转发给8191端口,然后等待放回
python代码
image
结果,返回成功
image

参考链接

js反爬
https://zhuanlan.zhihu.com/p/60627685