当前位置: 首页 > wzjs >正文

如何做网站报价公众号wordpress同步

如何做网站报价,公众号wordpress同步,怎样下载网页上的视频,广州专业网站建设在 Axios 中设置代理 Axios 与代理 Axios 是 JavaScript 生态中最广泛使用的 HTTP 客户端之一。它基于 Promise,提供了易用、直观的 API,用于执行 HTTP 请求并处理自定义请求头、配置和 Cookie 等。 通过为 Axios 请求设置代理,您可以隐藏自…

在 Axios 中设置代理

Axios 与代理

Axios 是 JavaScript 生态中最广泛使用的 HTTP 客户端之一。它基于 Promise,提供了易用、直观的 API,用于执行 HTTP 请求并处理自定义请求头、配置和 Cookie 等。

通过为 Axios 请求设置代理,您可以隐藏自己的 IP 地址,从而让目标服务器更难以识别并阻止您的请求。

在 Axios 中使用代理

让我们来看看如何在 Axios 中设置 HTTP、HTTPS 或 SOCKS 代理。首先,安装 axios

npm install axios

在 Node.js 环境中,Axios 原生支持通过 proxy 配置来使用 HTTP 和 HTTPS 代理。因此,如果您只需要在 Node.js 项目中使用 HTTP/HTTPS 代理,则无需额外操作。

但若您要使用非 HTTP/S 协议的代理,就需要借助 Proxy Agents 项目提供的 http.Agent 实现,它让 Axios 能够使用不同协议的代理:

  • HTTP 和 HTTPS 代理: https-proxy-agent
  • SOCKS、SOCKS5 和 SOCKS4: socks-proxy-agent
  • PAC-*: pac-proxy-agent

HTTP/HTTPS 代理

您的 HTTP/HTTPS 代理的 URL 通常形式如下:

"<PROXY_PROTOCOL>://<PROXY_HOST>:<PROXY_PORT>"
  • <PROXY_PROTOCOL>:对于 HTTP 代理是 "http",对于 HTTPS 代理是 "https"。
  • <PROXY_HOST>:代理服务器的 IP 地址。
  • <PROXY_PORT>:代理服务器监听的端口号。

例如,假设这是您的 HTTP 代理的地址:

"http://47.88.62.42:80"

您可以在 Axios 中这样设置:

axios.get(targetURL, {proxy: {protocol: "http",host: "47.88.62.42",port: 80}
})

要验证这个配置方式是否可行,可以获取一个免费 HTTP 或 HTTPS 代理地址,比如:

Protocol: HTTP; IP Address: 52.117.157.155; Port: 8002

完整的代理地址就是 http://52.117.157.155:8002。为了验证代理是否生效,您可以通过 HTTPBin 项目的 /ip 接口测试请求。这个接口会返回请求的来源 IP,因此应该是代理服务器的 IP。

Node.js 中的测试代码片段示例如下:

import axios from "axios"async function testProxy() {// 使用 HTTP 代理进行请求const response = await axios.get("https://httpbin.io/ip", {proxy: {protocol: "http",host: "52.117.157.155",port: 8002}});// 打印结果console.log(response.data)
}testProxy()

运行脚本后,理想情况下会输出:

{ "origin": "52.117.157.155" }

警告
若您跟着示例代码直接运行,可能不会得到相同结果,因为免费代理服务通常不稳定、速度慢、容易出错,有的数据还可能被记录或解析,且通常时效很短。

SOCKS 代理

如果您尝试在 proxy 配置中将协议设置为 "socks",会出现如下错误:

AssertionError [ERR_ASSERTION]: protocol mismatch// ...{generatedMessage: false,code: 'ERR_ASSERTION',actual: 'dada:',expected: 'http:',operator: '=='}

这是因为 Axios 并不原生支持 SOCKS 代理。为此,需要先安装 socks-proxy-agent

npm install socks-proxy-agent

该包允许您在进行 HTTP 或 HTTPS 请求时接入 SOCKS 代理。然后,引入 socks-proxy-agent 提供的 SOCKS 代理实现:

const SocksProxyAgent = require("socks-proxy-agent")

或若您使用 ESM:

import { SocksProxyAgent } from "socks-proxy-agent"

假设您的 SOCKS 代理地址是:

"socks://183.88.74.73:4153"

注意
代理协议可能是 “socks”、“socks5” 或者 “socks4”。

将它存到某个变量里,并传给 SocksProxyAgent 构造函数:

const proxyURL = "socks://183.88.74.73:4153"
const proxyAgent = new SocksProxyAgent(proxyURL)

SocksProxyAgent() 会初始化一个 http.Agent 实例,让所有 HTTP/HTTPS 请求都走这个代理地址。

在 Axios 中使用 SOCKS 代理可以这样做:

axios.get(targetURL, {httpAgent: proxyAgent,    httpsAgent: proxyAgent
})

httpAgent 和 httpsAgent 指定了在进行 HTTP/HTTPS 请求时应使用的自定义代理类。也就是说,Axios 发出的 HTTP 或 HTTPS 请求都会走这里指定的 SOCKS 代理。同理,您也可以使用 https-proxy-agent 来为 Axios 设置 HTTP/HTTPS 代理。

示例如下:

import axios from "axios"
import { SocksProxyAgent } from "socks-proxy-agent"async function testProxy() {// 将代理 URL 替换成您自己的 SOCKS 代理地址const proxyURL = "socks://183.88.74.73:4153"// 定义 HTTP/HTTPS 代理 agentconst proxyAgent = new SocksProxyAgent(proxyURL)// 通过 SOCKS 代理发送请求const response = await axios.get("https://httpbin.io/ip", {httpAgent: proxyAgent,    httpsAgent: proxyAgent})// 打印结果console.log(response.data) // { "origin": "183.88.74.73" }
}testProxy()

如需更多关于在 Axios 中配置 SOCKS 代理的示例,可查看此链接:
如何在 Axios 中使用 SOCKS 代理

Axios 代理:进阶用法

全局设置代理

如果您想在所有请求中都使用同一个代理,可以直接在 Axios 实例中进行全局设置:

const axiosInstance = axios.create({proxy: {protocol: "<PROXY_PROTOCOL>",host: "<PROXY_HOST>",port: "<PROXY_PORT>"},// 其他配置…
})

或者,如果您使用了 Proxy Agents:

// 定义代理 agent ...const axiosInstance = axios.create({httpAgent: proxyAgent,    httpsAgent: proxyAgent
})

以下示例演示了如何全局使用 SOCKS 代理:

import { SocksProxyAgent } from "socks-proxy-agent";const proxyURL = "socks://183.88.74.73:4153";// 创建一个 SOCKS 代理 agent
const proxyAgent = new SocksProxyAgent(proxyURL);// 创建一个 Axios 实例,全局应用该 SOCKS 代理
const axiosInstance = axios.create({httpAgent: proxyAgent, // 用于 HTTP 请求httpsAgent: proxyAgent, // 用于 HTTPS 请求// 其他配置...
});

现在使用 axiosInstance 发出的所有请求都会自动走该代理。

在 Axios 中处理需要身份验证的代理

为了只允许付费用户使用高质量的代理,一些代理服务商会要求进行身份验证(用户名 + 密码)。若您不带用户名 / 密码地尝试连接到此类代理服务器,就会收到 407 Proxy Authentication Required 错误。

一般情况下,需要身份验证的代理地址格式如下:

[<PROTOCOL>://]<USERNAME>:<PASSWORD>@<HOST>[:<PORT>]

例如,一个示例地址可能是:

http://admin:lK4w90MEe45YIkOpk@156.127.0.192:8391

对应的要素分解如下:

  • <PROTOCOL>http
  • <HOST>156.127.0.192
  • <PORT>8391
  • <USERNAME>admin
  • <PASSWORD>lK4w90MEe45YIkOpk

如果您使用 Axios 原生的 proxy,可以在 auth 字段中声明用户名和密码:

axios.get(targetURL, {proxy: {protocol: "http",host: "156.127.0.192",port: "8381",auth: {username: "admin",password: "lK4w90MEe45YIkOpk"}}
})

若您是使用 Proxy Agents,可以通过以下两种方式处理代理验证:

  1. 直接在代理 URL 中加入认证信息:
    var proxyAgent = new SocksProxyAgent("http://admin:[email protected]:8391")
    
  2. 通过 URL 对象设置 username 和 password
    const proxyOpts = new URL("http://156.127.0.192:8391")
    proxyOpts.username = "admin"
    proxyOpts.password = "lK4w90MEe45YIkOpk"const proxyAgent = new SocksProxyAgent(proxyOpts)
    

对于 HttpsProxyAgent 也同理。

通过环境变量设置代理

另一个在 Axios 中全局配置代理的方式是通过环境变量:

  • HTTP_PROXY: 用于 HTTP 请求的代理服务器地址。
  • HTTPS_PROXY: 用于 HTTPS 请求的代理服务器地址。

在 Linux 或 macOS 上,您可以这样设置:

export HTTP_PROXY="[<PROTOCOL>://]<USERNAME>:<PASSWORD>@<HOST>[:<PORT>]"
export HTTPS_PROXY="[<PROTOCOL>://]<USERNAME>:<PASSWORD>@<HOST>[:<PORT>]"

当 Axios 检测到这些环境变量后,会读取相应的代理配置,包括身份验证所需的凭据。若您想忽略这些环境变量,可将 proxy 字段设置为 false。也可以定义一个名为 NO_PROXY 的环境变量,以逗号分隔列出不需要走代理的域名。

同样的机制也可用于 通过 cURL 使用代理。

实现轮换代理

为了防止目标站点因多次请求同一 IP 而对您的代理进行封锁,您可以让每次请求都使用不同的代理地址:

  1. 定义一个包含多个代理信息的列表。
  2. 在每次请求前随机(或按一定规则)从列表中选择一个代理。
  3. 将选定的代理配置信息传给 Axios。

这种方式需要您拥有一个可用的代理池,诸如 Bright Data 提供的 轮换代理 就可以满足此需求。

结论

Bright Data 拥有全球领先的代理网络,为世界 500 强企业及超过 20,000 名客户提供服务。其全球代理网络覆盖多种类型:

  • 数据中心代理 – 超过 770,000 个数据中心 IP。
  • 住宅代理 – 覆盖 195+ 个国家/地区、共 72M+ 个住宅 IP。
  • ISP 代理 – 超过 700,000 个 ISP IP。
  • 移动代理 – 超过 7M 个移动 IP。

立即免费注册 Bright Data 账户 试用我们的代理服务器吧。

http://www.dtcms.com/wzjs/535116.html

相关文章:

  • 做设计怎么进公司网站苏州网站建设集团
  • 做网站用vs怎样免费做公司网站
  • 做pc端网站流程大数据营销方式有哪些
  • 可以下载的建站网站成都网站建设加推广公司
  • 学校网站设计风格与布局软件开发交易平台
  • 动漫网站建设总结ps如何做psd模板下载网站
  • 8月4号建设部网站网站如何做地推
  • 全球建筑网站网站维护项目
  • 做网站服务网站备案完成后该如何做
  • wordpress站点目录设计好看的企业网站
  • 怎样做建网站做淘客wordpress 带分页的主题
  • 网站建设费专用票知名电子商务企业
  • 织梦网站添加搜索功能wordpress多重
  • 建站公司网站用什么好触屏版手机网站开发
  • 建设银行租房平台网站6网站做百度收录的意义
  • 网站建设与网页的区别wordpress comment meta query
  • 网站空间代理加盟湖北省建设教育协会网站首页
  • 网站建设和技术服务合同秦皇岛 网站建设
  • 整站优seo排名点击wordpress关闭谷歌
  • 英文学习网站网站开发行业信息网
  • 专业团队优质网站建设方案网站建设ftp软件
  • 赚钱平台网站wordpress 5.0文章编辑教程
  • 四子王旗建设局网站柳州市建设投资开发公司网站
  • 怎么做代理人金沙网站长沙房产网二手房
  • 网站建设策划实施要素有哪些哪个网站开发培训好
  • 永康住房和城乡建设部网站静态网站策划书
  • 网站需求表格网站建设评判
  • 济南网站制作哪家最好曲靖今天最新通知
  • 网站服务器重做系统怎么做个人简历表格下载
  • 重庆seo网站运营网站建设 维护