有获取 IP 的 API,因为代理商的限制条件每个 IP 只存在 5 分钟-20 分钟不等。
之前有尝试添加 threadiing 模块下的 timer 模块,但是好像不是很理想。所以想请教一下各位。
如何做到在主函数不停止运行的情况下,每 5 分钟更换一个 IP,然后爬虫继续运行
1
lijia168 Jun 12, 2020
我之前那样子弄的,代理 ip 有个过期时间, 判断时间是否过期,过期了再重新取代理 ip
|
2
kiracyan Jun 12, 2020
居然是五分钟换一个 一般不是从 ip 池里面随机取的吗 然后更新缓存池就好了
|
5
ik Jun 12, 2020 via iPhone
楼主的意思是爬虫里面逻辑不好定时更新代理对吧?
可以试试用脚本配合 haproxy , iptables , cow 等方式实现定期更新端口转发 |
6
optional Jun 12, 2020
计算机里解决不了的问题就加一层。
爬虫的 ip 从 cache 里取, 有个线程定时维护 cache 。 |
7
ik Jun 12, 2020 via iPhone
这样爬虫内使用的代理始终都是固定不变的, 只是可能需要解决重启转发服务时可能出现的异常
|
8
huayunbin Jun 12, 2020
可以写个程序维护一个 ip 池,暴露个取 ip 的口子出去,爬虫直接取就行了。
|
12
312ybj Jun 12, 2020
老铁,你的 ip 代理从哪弄得
|
13
nullboy Jun 12, 2020
我怎么试了几个代理服务商都很垃圾,根本没法用
|
14
xueyoucai OP @312ybj 在一个 IP 代理池的项目里,然后有推荐 IP 代理网站,我的那个是按个卖的,9 元 1000 。没法,公司不掏大钱,只能小钱买这种了
|
15
aladdindingding Jun 12, 2020
在用快代理他们隧道代理 还行
|
17
aladdindingding Jun 12, 2020
用 redis 呗 或者自己起一个线程维护一个可以用的 ip 池
|
18
wxiao333 Jun 12, 2020 阿布云,一个请求换一次 ip,不按数量收费按时间,不香吗
|
20
kiracyan Jun 12, 2020
@xueyoucai 拿 ip 的时候能拿到过期时间吗 然后纪录过期时间 每次拿 ip 的时候从内存读 先判断是否过期 过期再从接口拿一个更新过期时间
|
21
batyu Jun 12, 2020
看了评论才明白隧道代理是干嘛用的!
|
24
lawler Jun 12, 2020
超时重试,第二次失败,切换 IP 。
|
25
gxlonline Jun 12, 2020 via Android
可以试下 酷鱼代理 私密代理 隧道代理
|
26
biu7 Jun 12, 2020
9 元 1000 听上去像是讯代理。。。
|
27
wangyzj Jun 12, 2020
之前我是淘宝买可以带换 ip 软件的 vps,各种换
|
28
toomlo Jun 13, 2020
问题是 如果把 Ip 取出来就开始计时了,到点就过期了
----------- 第一次用 ip 的时候才去代理商那里取,然后在存到代理池里面啊 不一定非得先取了 ip 在用啊 |
30
airdge Jun 14, 2020
ip 设置有效期啊,数据过期就重新获取
写入缓存或者文本 |
31
xiaozizayang Jun 14, 2020
利用买的代理来源做个代理池就行,爬虫服务从代理池那代理进行请求
另一个保证代理池服务都是可用的就行 |
32
dorothyREN Jun 14, 2020
存到 redis 里面 设置个超时时间,这样只要 redis 里面有,那就是有效的
|
33
g079708 Jun 29, 2020 via iPhone
可以试一下快鸟代理,他们的短效代理 IP 有 1 分钟到 24 小时的时长任你选择,提取不收费,按使用收费。
|
34
gxlonline Jul 9, 2020
可以用隧道代理,省去更换代理的步骤,云端自动切换 IP 。
酷鱼代理 https://kuyukuyu.com 隧道代理 |