爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!

代理是什么?代理实际上就是代理服务器, 代理服务器的工作机制很象我们生活中常常提及的代理商,假设你的机器为A机,你想获得的数据由B机提供,代理服务器为C机,那么

大家好,今天来为大家解答爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

为什么要使用代理?

我们在制作爬虫的过程中经常会遇到这种情况。首先,爬虫运行正常,爬取数据正常。一切看起来都那么好。然而,喝完一杯茶后,可能会出现错误,比如403 Forbidden。这时,当你打开网页查看时,可能会看到“您的IP访问频率过高”之类的提示。造成这种现象的原因是网站采取了一些反爬虫措施。例如,服务器会检测单位时间内某个IP的请求数量。如果超过这个阈值,就会直接拒绝服务,并返回一些错误信息。这种情况可以称为IP封锁。

这时候代理的作用就来了。你封锁了我的IP。我使用代理后,通过代理IP来请求数据,最后返回给我。你已经无计可施了,哈哈!废话不多说,咱们进入正题吧!

动态代理ip

动态代理,顾名思义,就是改变IP。这是通过拨号vps来实现的。

VPS服务器,即VPS(Virtual Private Server)技术,是将一台服务器划分为多台虚拟专用服务器的一种高品质服务。每个VPS都可以分配独立的公网IP地址、独立的操作系统、独立的大空间、独立的内存、独立的CPU资源、独立的执行程序和独立的系统配置等。此外还可以分配多个虚拟主机和无限的企业邮箱,用户还拥有独立的服务器功能。他们可以自己安装程序并独立重启服务器。通俗地说,VPS服务器就是虚拟专用服务器。用户无权接触物理机器,不需要对机器的物理硬件和其他设施负责维护。

拨号vps服务器在vps服务器的基本原理上增加了动态改变IP的功能。它可以不时地改变用户。常用来投票、刷单、批量注册微博、批量注册QQ等等,你能想到的都是用IP Server,有很多人用这个功能来抢手机、抢票。你可以想出所有利用IP赚钱的方法。

拨号vps设置动态代理服务器

加入群:960410445 大家一起交流吧。小编将一步步教你如何构建代理词。只要给我截图就可以了!

购买拨号vps时,选择预装centos7系统,还自带拨号软件pppoe。 (如果没有,请联系服务商安装)

我们来配置pppoe:

[root@localhost ~]# pppoe-setup #输入配置欢迎使用PPPoE 客户端设置。首先,我将对您的系统运行一些检查,以确保PPPoE 客户端安装正确.登录名输入您的登录名(默认根): #输入宽带帐户接口输入连接到PPPoE 调制解调器的以太网接口对于Solaris,这可能是类似于/dev/hme0。对于Linux,它将是ethX,其中“X”是一个数字。(默认eth0): # 只需按Enter 即可跳过。默认使用eth0网卡。 ifconfig可以查看网卡信息。您希望链接按需出现,还是持续保持?如果您希望它按需启动,请输入空闲时间(以秒为单位),之后应断开链接。如果您希望链接永久保持打开状态,请输入“no”(两个字母,小写)。注意: 需求激活的链接不能与动态IP 地址很好地交互。您可能会遇到一些需求激活链接的问题。请输入需求值(默认否): no#这里询问的是adsl连接后是否继续保持连接。或者可以在指定时间内(以秒计算)自动断开连接。在大多数情况下,我们希望手动打开和关闭连接。所以这里选择默认的no。 DNS请输入您的ISP 的主DNS 服务器的IP 地址。如果您的ISP 声称“该服务器将提供动态DNS 地址”,请在此输入“服务器”(全部小写)。如果您只是按Enter 键,我会假设您知道在此输入DNS 信息: #DNS 设置,按Enter 键跳过PASSWORD 请输入您的密码: #输入宽带密码请重新输入您的密码: #再次输入USERCTRL 请输入“yes”(三个字母,小写- )是否允许普通用户启动或停止DSL连接(默认是): yes#是否允许普通用户启动/关闭ADSL连接。默认是允许的。防火墙请选择要使用的防火墙规则。请注意,这些规则非常基本。强烈建议您使用更复杂的防火墙设置;然而,这些将提供基本的安全。如果您的计算机上运行任何服务器,则必须选择“无”并自行设置防火墙。否则,防火墙规则将拒绝访问所有标准服务器,如Web、电子邮件、ftp 等。如果您使用SSH,规则将阻止分配特权源端口的传出SSH 连接。防火墙选择为:0 – NONE: 此脚本将不设置任何防火墙规则。您有责任确保您的机器的安全。强烈建议您使用某种防火墙规则。1 – STANDALONE: 适用于基本的独立网络冲浪工作站2 – MASQUERADE: 适用于充当LAN 的Internet 网关的计算机选择防火墙类型(0-2): 0#防火墙选项。这里提供的防火墙可以为您提供基本的安全防护。我不推荐它——你最好选择“NONE”选项0。无论什么样的用户,我建议你使用额外的工具来配置防火墙规则(iptables目前似乎是一个非常好的工具)。

在启动时启动此连接您要在启动时启动此连接吗?请输入否或是(默认否):yes#您要在启动时打开此连接吗? ** 您输入的内容摘要**以太网接口: eth0用户名: 123456按需激活: NoDNS: 不要调整防火墙: 无用户控制: 是接受这些设置并调整配置文件(是/否)? y#所有配置信息填写完毕后,系统会生成一份报告,完整显示您输入的配置信息。如果确认输入的配置信息正确,请输入yes写入配置文件。输入no 放弃配置。调整/etc/sysconfig/network-scripts/ifcfg-ppp0调整/etc/ppp/chap-secrets 和/etc/ppp/pap-secrets (但首先将其备份到/etc/ppp/chap-secrets.bak)(但是首先将其备份到/etc/ppp/pap-secrets.bak)恭喜,一切都应该已设置完毕!输入“/sbin/ifup ppp0”以打开您的xDSL 链接,然后输入“/sbin/ifdown ppp0”以打开它键入“/sbin/pppoe-status /etc/sysconfig/network-scripts/ifcfg-ppp0”以查看链接状态。配置完成,

引入三个命令:

pppoe-启动拨号

pppoe-停止断开连接

pppoe-status 查看拨号状态

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!

[root@localhost ~]# pppoe-start[root@localhost ~]# pppoe-statuspppoe-status: 链接已启动并在接口ppp04: ppp0: POINTOPOINT、MULTICAST、NOARP、UP、LOWER_UP mtu 1480 qdisc pfifo_fast 状态未知qlen 3 link/上运行ppp inet xxx。 xxx。 xxx 对等点1.1.1.1/32 范围全局ppp0 valid_lft 永远Preferred_lft 永远

红色箭头所指的位置就是IP。

我们来测试一下是否可以连接网络。

[root@localhost ~]# ping www.baidu.comPING www.a.shifen.com (115.239.210.27) 56(84) 字节数据。来自115.239.210.27: 的64 字节icmp_seq=1 ttl=54 time=72.4 ms64 字节从115.239.210.27: icmp_seq=2 ttl=54 time=70.4 ms64 字节到115.239.210.27: icmp_seq=3 ttl=54 time=70.7 msok,网络可用。

代理选择使用TinyProxy。

百胜安装:

[root@localhost ~]# yum -y 安装tinyproxy

已加载插件: fastmirror

从缓存的主机文件加载镜像速度

* base: 镜像.163.com

* extras: 镜像.cn99.com

* 更新:镜像.163.com

没有可用的tinyproxy 软件包。

Error: 无事可做

新系统上的yum源需要自己配置。上面报错是因为镜像源没有这个包。

Add-in Enterprise Linux Add-on Packages (EPEL),企业版Linux Add-on Packages(以下简称EPEL)是一个Fedora 特殊兴趣小组,旨在为Enterprise 创建、维护和管理高质量的附加包集Linux,适用对象包括但不限于Red Hat Enterprise Linux (RHEL)、CentOS、Scientific Linux (SL)、Oracle Linux (OL)。 (https://fedoraproject.org/wiki/EPEL/zh-cn)

在centos系统上安装并启用epel source :

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!

yum install epel-release[root@localhost ~]# yum install epel-releaseLoadedplugins:fastestmirror从缓存的主机文件加载镜像速度*base:mirrors.163.com*extras:mirrors.cn99.com*updates:mirrors.163.com解决依赖关系–运行事务检查—包epel-release.noarch 0:7-11将被安装–完成依赖关系解析依赖关系已解决========================================================================================================================================================================================================================包Arch 版本存储库大小======================================================================================================================================================================================================================安装: epel-release noarch 7-11 额外15 k 交易摘要===============================================================================================================================================================================================================================安装1个软件包总下载大小: 15 k安装大小: 24 k这样可以吗[y/d/N]: y#开始下载软件包:epel-release-7-11 .noarch。转速| 15 kB 00:00:00 运行事务检查运行事务测试事务测试成功运行事务正在安装: epel-release-7-11.noarch 1/1 正在验证: epel-release-7-11.noarch 1/1 已安装: epel-release.noarch 0:7-11 完成!重新执行thinproxy安装命令:

配置代理、访问源限制和端口设置。

[root@localhost ~]# vi /etc/tinyproxy/tinyproxy.conf 修改Port端口,默认为8888

端口8888

注释掉Allow允许所有人访问代理

#允许127.0.0.1

配置完成后,启动tinyproxy。

tinyproxy启动代理

Killall tinyproxy 关闭所有端口(无需killall命令,安装yum install psmisc)

[root@localhost ~]#firewall-cmd –zone=public –add-port=8888/tcp –permanent #设置防火墙允许8888端口通过成功[root@localhost ~]#firewall-cmd — reload#Reload 下载防火墙配置成功。全部配置完成,测试代理是否可用。 pppoe-status 检查IP,Google 插件SwitchyOmega 配置代理。

选择配置的代理。如果可以正常访问,则说明代理服务器建立成功。

Python操作pppoe更改ip

python3环境安装

yum -y install wget#安装wget 下载wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz #下载tar -xvf Python-3.6.5.tgz#解压cd Python-3.6. 5#进入文件夹./configure prefix=/usr/local/python3#配置编译地址make make install#开始编译ln -s /usr/local/python3/bin/python3 /usr/bin/python3#配置软连接

然后顺便安装pip3和redis(python操作redis模块)。下一步将使用python3来操作redis。

yum install -y python34-setuptoolseasy_install-3.4 pippip3 安装redis

import os#切换IP,重启代理服务def changeIP(): os.system(‘pppoe-stop’) #断开连接时间.sleep(2) os.popen(‘pppoe-start’) #等待2s重拨时间。 sleep(8) os.popen(‘service tinyproxy restart’) #等待重拨完成,重新启动代理服务#获取当前IPdef extractIP(): infor=os.popen(‘pppoe-status’).read() #读取代理ip=re.search(‘(\d+\.\d+\.\d+\.\d+)’,infor).group(1) #正则匹配ip print(ip) 返回ip构建代理池(redis)

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!

下载安装包

wget http://download.redis.io/releases/redis-4.0.2.tar.gz 解压安装包并安装

tar xzf redis-4.0.2.tar.gz

cd redis-4.0.2

制作

进行安装

启动redis

redis服务器

python操作redis写入ip

import re,time,os,datetime,redis#获取时间def getTime(): numtime=datetime.datetime.now().strftime(‘%Y-%m-%d %H-%M-%S— ‘) return numtime#切换IP,重启代理服务def changeIP(): os.system(‘pppoe-stop’) time.sleep(2) os.popen(‘pppoe-start’) time.sleep(8) os. popen(‘service tinyproxy restart’)#获取当前IP def extractIP(): infor=os.popen(‘pppoe-status’).read() try: ip=re.search(‘(\d+\.\d+\. \ d+\.\d+)’,infor).group(1) print(ip) return ip except Exception as e: log_list.append(getTime()+’提取IP错误:’+str(e)) return False##删除ip对应key ip1def updateDel(): r=redis.Redis(host=”, port=6379, db=0,decode_responses=True,password=”) r.delete(‘ip1’)#重写ip对应key Key ip1def updatePut(ip): print(‘更新ip’) r=redis.Redis(host=”, port=6379, db=0,decode_responses=True,password=”) r.set(‘ip1′, ip+’:8888′) print(‘更新完成’)if __name__==’__main__’: #删除ip后重拨20s state=updateDel() time.sleep(20) os.popen(‘killall tinyproxy’) #重新连接changeIP( ) #获取当前IP ip=extractIP() if ip: updatePut(ip) redis使用的键值对也可以写在一个表中,这样提取ip更方便。

这意味着删除数据库中的IP后,20秒后重拨,以保证提取的IP有20s的响应时间来运行爬虫。

crontab设置计划任务

crontab -e

0 */1 * * * python3 /root/zhaozhi/IP.py 每小时执行一次(测试可用IP时间,自行更改)

用户评论

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
泪湿青衫

涨姿势了,以前都不知道要搭建代理池啊,难怪我的爬虫经常被封ip,看来以后得学习一下弄一个代理池

    有10位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
oО清风挽发oО

说的对,爬虫第一步就是搭建代理池!现在网站防护越来越厉害了,随便爬个IP就能被封禁。

    有7位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
惦着脚尖摘太阳

我之前用了一个免费的代理池,结果经常断线,影响爬取效率还挺大。感觉还是要花点钱找个靠谱的代理池平台

    有13位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
肆忌

搭建代理池确实比较费时,我还想简单直接一点的使用一些现成的爬虫工具或者脚本,是不是可以不用搭建?

    有9位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
海盟山誓总是赊

完全同意你的观点!之前就因为IP被封禁导致爬取失败过很多次,真是浪费了时间和精力。以后一定要重视这一步!

    有10位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
陌上蔷薇

代理池这种东西对新手来说真的太复杂了吧?有没有简单一点的办法,比如直接使用那些免费的爬虫工具啊。

    有7位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
纯情小火鸡

搭建代理池确实是必要的,但这可不是一件容易的事,需要学习相关的技术知识才行。

    有5位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
减肥伤身#

我之前用过一些付费的代理池,服务感觉还行,但价格比较贵。也不知道有没有更实惠的选择

    有17位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
拥菢过后只剰凄凉

IP被封禁这个事情真的太头疼了!看来以后爬虫得学会使用代理池来保护自己

    有12位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
红尘滚滚

完全认同你的说法!从我这开始学啦,搭建代理池第一步,感谢分享!

    有10位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
未来未必来

代理池确实可以有效提升爬虫的成功率和效率,只是希望代理池价格不要太贵啊

    有11位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
灬一抹丶苍白

搭建代理池的确是爬虫工作中的重要步骤,不然一封你IP,什么都没爬到。

    有16位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
别伤我i

不过搭建代理池也需要一定的技术基础吧?我有点担心自己学习不过来…

    有5位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
孤街浪途

之前爬虫的时候遇到了很多IP被封禁的问题,现在看来是因为没有搭建代理池!

    有15位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
心亡则人忘

感觉爬虫越来越难做了!需要学习那么多技术知识才能成功爬取数据

    有13位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
有些人,只适合好奇~

这篇文章很实用,以前根本不知道搭建代理池这么重要。

    有6位网友表示赞同!

爬行的第一步!只需建立一个代理池即可!不然我就给你发一个IP地址!你还有锤子啊!
在哪跌倒こ就在哪躺下

对新手来说,搭建代理池可能确实比较困难,希望能有更多简单的解决方法。

    有12位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/154293.html

Like (0)
小su的头像小su
Previous 2024年9月20日 上午11:45
Next 2024年9月20日 上午11:50

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注