iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >nodejs爬虫中如何设置动态ip
  • 693
分享到

nodejs爬虫中如何设置动态ip

2023-06-20 13:06:05 693人浏览 独家记忆
摘要

这篇文章主要介绍了nodejs爬虫中如何设置动态ip,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说明1、建立动态IP需要使用superagent-proxy插件,super

这篇文章主要介绍了nodejs爬虫中如何设置动态ip,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

说明

1、建立动态IP需要使用superagent-proxy插件,superagent-proxy。

2、为了避免每次爬取时都要获得一次动态IP列表,在redis中保存爬取到的动态IP列表,并设置10分钟的过期时间。重新发送获取动态IP的请求后,请在数据过期。

实例

  package.JSON     {     "name": "xxx",     "version": "1.0.0",     "description": "xxx",     "main": "arf.js",     "scripts": {     "arf": "nodemon src/app.js --exec babel-node --config package.json"     },     "keyWords": [     "爬虫"     ],     "author": "lidikang",     "license": "MIT",     "dependencies": {   "bluebird": "^3.5.1",   "cheerio": "^1.0.0-rc.2",   "eventproxy": "^1.0.0",   "monGoose": "^4.13.6",   "mongoose-findorcreate": "^2.0.0",   "progress": "^2.0.0",   "Redis": "^2.8.0",   "superagent": "^3.8.1",   "superagent-proxy": "^1.0.2"  },   "devDependencies": { "babel-cli": "^6.26.0",   "babel-preset-es2015": "^6.24.1",   "babel-preset-stage-2": "^6.24.1",   "nodemon": "^1.12.4"   },   "nodemonConfig": {   "ignore": [   "ips.json",   "docs   function connectRedis() {   let client = redis.createClient(config.REDIS_URL)   client.on("ready", function(err) {   console.log('redis连接 √')   })   client.on("error", function(err) {   console.log(`redis错误,${err} ×`);   })   return client   }      async function getProxyIp() {   // 先从redis读取缓存ip   let localIpStr = await redisClient.getAsync('proxy_ips')   let ips = null   // 如果本地存在,则随机返回其中一个ip,否则重新请求   if (localIpStr) {   let localIps = localIpStr.split(',')   return localIps[parseInt(Math.random() * localIps.length)]   } else {   let ipsJson = (await request.get('Http://api.pcdaili.com/?orderid=888888888&num=100&protocol=1&method=1&an_ha=1&sp1=1&sp2=1&fORMat=json&sep=1')).body   let isRequestSuccess = false   if (ipsJson && ipsJson.data.proxy_list) {   ips = ipsJson.data.proxy_list   isRequestSuccess = true   } else {   ips = ['http://127.0.0.1']   }   // 将爬取结果存入本地,缓存时间10分钟   if (isRequestSuccess) {   redisClient.set("proxy_ips", ips.join(','), 'EX', 10 * 60)   } return ips[parseInt(Math.random() * ips.length)]   }   }   async function doRequest(){   let userAgent = userAgents[parseInt(Math.random() * userAgents.length)]   let ip = await getProxyIp()  let useIp = 'http://' + ip   request.get('http://www.xxx.com')   .set({ 'User-Agent': userAgent })   .timeout({ response: 5000, deadline: 60000 })   .proxy(ip)   .end(async(err, res) => {   // 处理数据   })   }

感谢你能够认真阅读完这篇文章,希望小编分享的“nodejs爬虫中如何设置动态ip”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: nodejs爬虫中如何设置动态ip

本文链接: https://www.lsjlt.com/news/296624.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • nodejs爬虫中如何设置动态ip
    这篇文章主要介绍了nodejs爬虫中如何设置动态ip,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说明1、建立动态IP需要使用superagent-proxy插件,super...
    99+
    2023-06-20
  • 干货Python爬虫如何设置代理IP
    在Python爬虫中设置代理IP可以通过使用第三方库如requests或urllib库来实现。以下是一个使用requests库设置代...
    99+
    2023-09-21
    Python
  • ubuntu如何设置动态ip
    ubuntu设置动态ip的方法:1.打开终端;2.输入命令查看网卡名称;3.再输入命令查找网络配置文件;4.修改网络配置文件内容;5.输入命令使修改生效。ubuntu设置动态ip的方法:打开终端命令行。输入以下命令查看网卡名称。$ ifco...
    99+
    2022-10-16
  • 动态ip代理中如何用爬虫实现前端页面渲染
    本篇文章为大家展示了动态ip代理中如何用爬虫实现前端页面渲染,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  在很早以前,几乎绝大多数网站全全都是利用后端渲染的,即在服务器端组装形成完整的HTML页...
    99+
    2023-06-02
  • 如何设置动态ip地址
    这篇文章主要讲解了“如何设置动态ip地址”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何设置动态ip地址”吧!DynamicIP是指在需要时分配IP地址的方法。相应地,动态IP地址与静态I...
    99+
    2023-06-25
  • centos7如何手动设置静态ip
    要手动设置CentOS 7的静态IP,您可以按照以下步骤操作:1. 打开终端并以root用户身份登录。2. 编辑网络配置文件`/et...
    99+
    2023-09-07
    centos7
  • nodejs如何获取路由器动态ip
    在进行网络编程时,获取路由器的IP地址是一个常见的需求。无论是开发网络应用程序还是网络安全工作,获取路由器的动态IP地址都是非常重要的。在Node.js中,如何获取路由器动态IP呢?本文将详细介绍Node.js获取路由器动态IP的方法。一、...
    99+
    2023-05-14
  • RHEL8如何设置静态IP
    这篇文章将为大家详细讲解有关RHEL8如何设置静态IP,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。对于服务器来说,是需要固定的ip地址的,以便其他服务进行连接。咱们在搭建服务器的时候,有的时候有很多的时...
    99+
    2023-06-28
  • Linux系统如何配置动态IP、静态IP
    这篇文章将为大家详细讲解有关Linux系统如何配置动态IP、静态IP,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 配置动态IP(dhcp)本例的操作系统是Centos 7。\1. 进入网络脚本配置目...
    99+
    2023-06-28
  • Python爬虫Scrapy框架IP代理如何配置与调试
    这篇文章主要介绍Python爬虫Scrapy框架IP代理如何配置与调试,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代理ip的逻辑在哪里一个scrapy 的项目结构是这样的scrapydownloadertest&n...
    99+
    2023-06-22
  • vue如何动态设置class、动态设置style
    目录vue动态设置class、stylevue动态添加样式 :style 和 :class:style如下:class如下 vue动态设置class、style //动态c...
    99+
    2022-11-13
    vue动态设置class vue动态设置style 动态设置class style
  • linux如何设置静态ip地址
    linux中设置静态ip地址的方法:1、打开linux终端命令行;2、输入“sudo vim /etc/network/interfaces”命令修改网卡配置文件;3、输入“sudo vim /etc/resolvconf/resolv.c...
    99+
    2022-10-06
  • ubuntu16.04如何手动设置ip
    小编给大家分享一下ubuntu16.04如何手动设置ip,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ubuntu系统想要访问局域网,需要配置固定的ip地址,该怎...
    99+
    2023-06-13
  • 如何设置ubuntu为静态ip地址
    设置ubuntu为静态ip地址的方法:打开终端命令行模式。输入以下命令获取网卡名称。ifconfig再输入以下命令修改网卡配置文件。sudo vim /etc/network/interfaces例如:# The primary netwo...
    99+
    2022-10-04
  • CentOS中怎么设置网卡成DHCP动态获取IP
    小编给大家分享一下CentOS中怎么设置网卡成DHCP动态获取IP,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1)编辑网卡配置文件:vi /etc/syscon...
    99+
    2023-06-10
  • vue如何动态配置ip与端口
    目录vue动态配置ip与端口动态配置IP及端口,打包后随时改随时生效一.利用public下的文件不会被打包的原理二.利用 generate-asset-webpack-plugin ...
    99+
    2022-11-13
  • 如何解决使用爬虫动态http代理遇到的问题
    这篇文章将为大家详细讲解有关如何解决使用爬虫动态http代理遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。爬取数据时,爬虫必须使用代理IP,否则无法顺利进行。使用代理IP爬虫时,用户也会出现一些...
    99+
    2023-06-20
  • 如何设置无线路由器静态ip
    这篇文章主要介绍了如何设置无线路由器静态ip,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、把路由器的网线与电脑连接好后,打开电脑浏览器,输入192.168.1.1并返回到...
    99+
    2023-06-25
  • 如何使用路由器设置静态ip
    这篇文章给大家分享的是有关如何使用路由器设置静态ip的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。不用路由器时,单台宽带接入上网,需要配置IP地址、网关、DNS服务器地址等,由运营商或房东提供。这是一种静态IP网...
    99+
    2023-06-20
  • 如何设置静态ip使网速更快
    这篇文章主要介绍如何设置静态ip使网速更快,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一,找运营商刷新网络数据记录,这种方法非常适合从未刷新GPRS数据的朋友。每个手机号对应一个GPRS网络账号,记录相应账号的互...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作