爬取的免费 IP 怎么有效性这么高?甚至 100%

2018-12-27 07:26:56 +08:00
 bruce00

检测网址: https(或 http)://httpbin.org/ip

检测方法:用 python 的 requests 请求,如果状态码为 200 则认为有效

检测结果:有效率高达 90%甚至 100%,但是随机选取了几个通过检测的 ip 请求原代理 IP 网站,成功率 0%,试着请求豆瓣,成功率 50%

目前猜想: 1、代理 IP 网站自己把放出的 ip 屏蔽了; 2、部分 IP 已经被使用过且已被目标网站屏蔽; 3、检测的网址或检测的方法有问题。。。

# 检测 IP 有效性
def test_proxy(proxy):
    ip_port = proxy['ip_port']
    scheme = proxy['scheme']
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6788.400 QQBrowser/10.3.2864.400'
    }
    ip = {
        scheme: "{}://".format(scheme) + ip_port
    }
    try:
        res = requests.get('{}://httpbin.org/ip'.format(scheme), headers=headers, proxies=ip, timeout=5)
        if res.status_code == 200:
            items = {
                'proxy': scheme + '://' + ip_port
            }
            collection.insert(items)
            print('有效', ip_port)
    except:
        print('无效')
        pass
2667 次点击
所在节点    问与答
8 条回复
dengtongcai
2018-12-27 08:32:55 +08:00
有效时间有多久
meiyoumingzi6
2018-12-27 09:45:12 +08:00
200 认为有效不太科学吧
bruce00
2018-12-27 10:00:53 +08:00
@dengtongcai 刚才检测了一遍,有效率 70%,跟昨天差不多,这是批量提取出来的,直接从网站上爬的有效率更高,正常么?
bruce00
2018-12-27 10:02:45 +08:00
@meiyoumingzi6 我也加了个 print(res.text)大致看了看,几乎都能返回网页的内容
miniliuke
2018-12-27 10:04:17 +08:00
@bruce00 你访问百度还返回 200 呢,啥时候百度成为你的代理了.......不如直接拿代理去访问你的某个页面,对比一下返回的内容,一样说明有效
bruce00
2018-12-27 10:14:13 +08:00
@miniliuke 意思是网上说免费 IP 万人骑可用率低是针对热门网站吧?
dengtongcai
2018-12-27 11:05:11 +08:00
@bruce00 我的意思是比如说你测试时间是 2018-12-27 11:00 然后在 2018-12-17 11:05 之间是否一直有效,中间会不会有无效的情况
bruce00
2018-12-27 11:08:10 +08:00
@dengtongcai 原来是这样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/521368

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX